Tag: c#

双向字典?

我有两组对象,在某些情况下,第一组将用作另一组的键,而在其他情况下,第二组将用作第一组的键。 此外,两个列表中都不得有重复项。 什么是一个好的数据结构用于此? 我应该使用两个字典还是有更聪明的方法?

如何validationX509证书?

我必须编写一个工具来validationX509证书是否有效(输入=证书路径/主题和密码)。 我怎样才能做到这一点? 我不太了解证书……

带有POST编码问题的C#web请求

在MSDN网站上有一些C#代码的示例,它显示了如何使用POST数据发出Web请求。 以下是该代码的摘录: WebRequest request = WebRequest.Create (“http://www.contoso.com/PostAccepter.aspx “); request.Method = “POST”; string postData = “This is a test that posts this string to a Web server.”; byte[] byteArray = Encoding.UTF8.GetBytes (postData); // (*) request.ContentType = “application/x-www-form-urlencoded”; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream (); dataStream.Write (byteArray, 0, byteArray.Length); dataStream.Close (); WebResponse response = request.GetResponse (); […]

使用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 = […]