Tag: C#的

log4net:configuration忽略来自特定类的消息

有没有办法让log4netconfiguration忽略一个特定的类? 例如,我们通常在每个class级创build一个日志。 与此类似: private static readonly ILog Log = log4net.LogManager.GetLogger("MyClass"); 问题是MyClasslogging了大量的数据,并且很难find其他类的信息。 它的另一个使用MyClass开发,所以我不能只是进入和改变日志文件,但在我的环境,我想忽略这些。 我可以将我的configuration文件设置为忽略来自特定类的消息吗?

我是否破坏了StringBuilder的效率?

我已经开始使用StringBuilder而不是直接连接,但是它似乎缺less一个关键的方法。 所以,我自己实现它作为一个扩展: public void Append(this StringBuilder stringBuilder, params string[] args) { foreach (string arg in args) stringBuilder.Append(arg); } 这变成了以下混乱: StringBuilder sb = new StringBuilder(); … sb.Append(SettingNode); sb.Append(KeyAttribute); sb.Append(setting.Name); 进入这个: sb.Append(SettingNode, KeyAttribute, setting.Name); 我可以使用sb.AppendFormat("{0}{1}{2}",… ,但是这看起来更不理想,而且更难读。我的扩展是一个好方法,还是以某种方式破坏了好处的StringBuilder ?我不是试图过早地优化任何东西,因为我的方法更多的是可读性而不是速度,但我也想知道我不是在自己的脚下射击。

将月份int转换为月份名称

我只是试图使用DateTime结构将1和12之间的整数转换成简化的月份名称。 这是我试过的: DateTime getMonth = DateTime.ParseExact(Month.ToString(), "M", CultureInfo.CurrentCulture); return getMonth.ToString("MMM"); 但是,我得到一个FormatException在第一行,因为该string不是一个有效的DateTime 。 谁能告诉我如何做到这一点?

如何在ASP.NET Core中启用CORS

我正在尝试启用我的ASP.NET Core Web API上的跨源数据共享,但是我被卡住了。 EnableCors属性接受stringtypes的policyName作为参数: // Summary: // Creates a new instance of the Microsoft.AspNetCore.Cors.Core.EnableCorsAttribute. // // Parameters: // policyName: // The name of the policy to be applied. public EnableCorsAttribute(string policyName); policyName是什么意思,如何在ASP.NET Core Web API上configurationCORS ?

什么是一个很好的OO C ++包装的SQLite

我想为sqlitefind一个好的面向对象的C ++(而不是C)包装器。 人们推荐什么? 如果你有几个build议,请把它们分别用于投票。 另外,请说明您是否有任何关于您build议的包装的经验,以及您是如何使用的。

我怎样才能将一个枚举转换成List <SelectListItem>?

我有一个asp.net-mvc网页,我想显示一个基于枚举的下拉列表。 我想显示每个枚举项的文本,并将该枚举值与该枚举相关联的int值。 有没有任何优雅的方式来做这个转换?

事件不是字段 – 我不明白

在C#深入 (到目前为止一本优秀的书),Skeet解释事件不是领域 。 我多次阅读这个部分,我不明白为什么这个区别有什么不同。 我是混淆事件和委托实例的开发人员之一。 在我看来,他们是一样的。 不仅仅是一种间接的forms? 我们可以同时组播。 事件设置为一个字段作为速记…当然。 但是,我们正在添加或删除处理程序。 当事件发生时将它们堆叠起来。 我们不要和代表做同样的事情,把它们叠起来调用?

托pipe和非托pipe代码,内存和大小有什么区别?

关于托pipe代码和非托pipe代码,在看到和收听很多内容之后,知道唯一的区别就是托pipe的是关于CLR,而非托pipe的是CLR之外的,这让我真的很好奇。 这是什么,pipe理和非托pipe的代码,内存和大小? 如何在C#中编写的代码不受托pipe,而这是C#代码,以及如何将大小内存变得不受pipe理。 一个例子和一个小洞察将是有帮助的。

需要在结构中重写什么以确保平等运行正常?

正如标题所说:我是否需要重写==运算符? 那么.Equals()方法呢? 任何我失踪?

当使用不同的对象时,模板专门化的多重定义

当我在不同的目标文件中使用专门的模板时,链接时会出现“多重定义”错误。 我发现唯一的解决scheme涉及使用“内联”function,但它似乎是一些解决方法。 我如何解决这个问题,而不使用“内联”关键字? 如果这是不可能的,为什么? 以下是示例代码: paulo@aeris:~/teste/cpp/redef$ cat hello.h #ifndef TEMPLATE_H #define TEMPLATE_H #include <iostream> template <class T> class Hello { public: void print_hello(T var); }; template <class T> void Hello<T>::print_hello(T var) { std::cout << "Hello generic function " << var << "\n"; } template <> //inline void Hello<int>::print_hello(int var) { std::cout << "Hello specialized function […]