使用AdoNetAppender刷新Log4Net缓冲区

我正在使用Log4Net和AdoNetAppender,我喜欢在特定时间或时间段内刷新缓冲区。 可能是我没有错,Log4Net不提供这个function,为此我必须创建自己的Appender,但我不知道或者可能是我混淆了如何实现这一点。 谁能帮我这个? 对于flush,我想使用以下代码,但它没有时间或超时function。 public void FlushBuffers() { ILoggerRepository rep = LogManager.GetRepository(); foreach (IAppender appender in rep.GetAppenders()) { var buffered = appender as BufferingAppenderSkeleton; if (buffered != null) { buffered.Flush(); } } } 编辑 Log4Net是在Asp.Net网站上实现的,我需要刷新这个网站。 也许我可以创建每隔2小时执行代码块的Thread并刷新缓冲区。

C#Regex.Match只有花括号 – 内容? (不包括牙箍)

我一直无法找到答案:我可以使用Regex.Matches方法仅返回带花括号的项目的内容吗? 如果我使用正则表达式({[^}]*})我的MatchCollection值包括大括号。 我想匹配,但只返回内容。 这是我到目前为止所拥有的: Regex regex = new Regex(({[^}]*}), RegexOptions.IgnoreCase); MatchCollection matches = regex.Matches(“Test {Token1} {Token 2}”); // Results include braces (undesirable) var results = matches.Cast().Select(m => m.Value).Distinct().ToList();

如何使用reflection来调用具有特定自定义属性的所有方法?

我有一个有很多方法的课。 其中一些方法由自定义属性标记。 我想立即调用所有这些方法。 我如何使用reflection来查找该类中包含此属性的所有方法的列表?

包含实现IDisposable的项的会话

在ASP.NET中,如果项目保留在实现IDisposable的会话状态,但是当会话到期时,应用程序永远不会被应用程序专门删除和处理,那么将在对象上调用Dispose()将执行Dipose()中的任何代码吗?

在C#中使用Datagrid更新数据库

刚刚工作的东西需要帮助我再次卡在这里….我正在使用datagrid从数据库中检索值,我想使用类似的数据网格更新数据库但不知怎的我有麻烦,任何人都可以指导我如何做到这一点.. …我的意思是当执行查询时,如果用户想要更新某些内容他/她可以在显示值的数据网格中执行此操作,则检索所选数据…. if (textBox1.Text != “”|| textBox1.Text==null) { textBox3.Enabled = false; dateTimePicker1.Enabled = false; dateTimePicker2.Enabled = false; String txt = textBox1.Text; dataGridView1.DataSource = null; dataGridView1.Rows.Clear(); dataGridView1.Refresh(); OleDbDataAdapter dAdapter = new OleDbDataAdapter(“SELECT * FROM [BDetails] WHERE ([BranchCode] = ‘” + @txt + “‘)”, connParam); OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter); dataTable = new DataTable(); DataSet ds = […]

什么消耗更少的资源,并且更快地存储在StringBuilder中的File.AppendText或File.WriteAllText?

我必须将数千条动态生成的行写入文本文件。 我有两个选择,哪个消耗更少的资源并且比另一个更快? A.使用StringBuilder和File.WriteAllText StringBuilder sb = new StringBuilder(); foreach(Data dataItem in Datas) { sb.AppendLine( String.Format( “{0}, {1}-{2}”, dataItem.Property1, dataItem.Property2, dataItem.Property3)); } File.WriteAllText(“C:\\example.txt”, sb.ToString(), new UTF8Encoding(false)); B.使用File.AppendText using(StreamWriter sw = File.AppendText(“C:\\example.txt”)) { foreach (Data dataItem in Datas) { sw.WriteLine( String.Format( “{0}, {1}-{2}”, dataItem.Property1, dataItem.Property2, dataItem.Property3)); } }

使用Serilog的一个记录器的多个filter

我正在尝试使用我的ASP.NET核心应用程序设置Serilog。 我想为所有控制器提供一个日志文件,一个用于所有服务,一个用于其余服务,理想情况下包含一切。 每个控制器都inheritanceBaseController和每个服务BaseService 。 我正在调用的控制器和服务正在编写跟踪日志事件。 通过dependency injection检索记录器和服务。 该服务看起来像控制器(关于记录器)。 public class UsersController: BaseController { private UserService service { get; } public UsersController(ILogger logger, UserService userService) : base(logger) { service = userService; } } public abstract class BaseController: Controller { protected readonly ILogger Logger; public BaseController(ILogger logger) { Logger = logger; } } 方法1 (仅与基础部门合作) Log.Logger = […]

从类型集合中获取公共基类的最简单方法

我正在构建一个自定义属性网格,用于显示集合中项目的属性。 我想要做的是只显示网格中每个项目中常见的属性。 我假设最好的方法是找到集合中每种类型的公共基类并显示它的属性。 有没有更简单的方法? 你能给我一个最佳方法的代码示例吗?

如何克服OutOfMemoryException从API中提取大型xml文档?

我从API中提取1M +记录。 pull工作正常,但是当我尝试将ReadToEnd转换为字符串变量时,我遇到了内存ReadToEndexception。 这是代码: XDocument xmlDoc = new XDocument(); HttpWebRequest client = (HttpWebRequest)WebRequest.Create(uri); client.Timeout = 2100000;//35 minutes WebResponse apiResponse = client.GetResponse(); Stream receivedStream = apiResponse.GetResponseStream(); StreamReader reader = new StreamReader(receivedStream); string s = reader.ReadToEnd(); 堆栈跟踪: at System.Text.StringBuilder.ToString() at System.IO.StreamReader.ReadToEnd() at MyApplication.DataBuilder.getDataFromAPICall(String uri) in c:\Users\RDESLONDE\Documents\Projects\MyApplication\MyApplication\DataBuilder.cs:line 578 at MyApplication.DataBuilder.GetDataFromAPIAsXDoc(String uri) in c:\Users\RDESLONDE\Documents\Projects\MyApplication\MyApplication\DataBuilder.cs:line 543 我该怎么做才能解决这个问题?

C#按原始顺序获取FieldInfos / PropertyInfos?

如何将类型FieldInfos / PropertyInfos作为MemberInfo数组按照它们在类中的布局顺序获取? class Test { public bool First { get; set; } public int Second; public string Third { get; set; } }