草庐IT

c# - 如何在同一解决方案中使用来自多个项目的 NLog

我在网上搜索了一个非常简单的问题。我的解决方案是一个exe(WPF)项目和四个类库。我需要一个日志记录,我喜欢NLog。如何在一个解决方案中的所有5个项目中使用它?我不知道,我是否需要创建(或获取某个地方)从所有项目引用的包装类项目并从那里使用Nlog?我看到为log4Net写的类似这样的东西。或者对于这种情况是否有一些模式或最佳实践? 最佳答案 只需在每个项目中直接引用NLOG并使用它。但是你只需要在你的主应用程序中配置它。然后将自动共享配置。 关于c#-如何在同一解决方案中使用来自多

c# - 如何使只读结构 XML 可序列化?

我有一个只有一个字段的不可变结构:structMyStruct{privatereadonlydoublenumber;publicMyStruct(doublenumber)=>this.number=number;}我希望它能够通过以下方式序列化/反序列化:数据契约序列化器二进制格式化程序XML序列化程序(编辑:在原始问题中忘记了)Json.NET(不添加Json.NET作为依赖项)所以结构变成了这样:[Serializable]structMyStruct:ISerializable,IXmlSerializable{privatereadonlydoublenumber;pub

c# - 将任何控件与滚动条一起使用时,不会触发 MouseWheel 事件(在 C# Windows 窗体中)

MouseWheel事件没有触发当我使用带有滚动条的任何控件(ListBox、Panel、TextBox)时。重现问题:publicclassForm1:Form{privatereadonlyButtonbutton1;privatereadonlyTextBoxtextBox1;privatevoidbutton1_MouseWheel(objectsender,MouseEventArgse){ToString();//doesn'tfirewhenuncommentlinesbelow}publicForm1(){button1=newButton();textBox1=new

c# - 在优化使用时让 ReSharper 保留 'using System;'

我想知道是否有一些选项可以防止ReSharper仅删除usingSystem;指令?也许这可以在某处配置?另外,有没有办法让ReSharper像VisualStudio2008那样对剩余的指令进行排序(我认为是按字母顺序)?谢谢。 最佳答案 是的,有这么一个选项:ReSharper->Languages->C#->NamespaceImports。您可以添加不应删除的namespace,以及应始终导入的namespace。 关于c#-在优化使用时让ReSharper保留'usingSys

c# - WPF:如何使 RichTextBox 看起来像 TextBlock?

我怎样才能制作RichTextBox没有边距、边框、填充等?换句话说,以与TextBlock相同的方式显示内容可以?我试过这个:LLLLLL但是产生的结果还是不是我想要的:文档内容之前还有一些空间(可能之后,在文档的顶部或底部...)。我怎样才能删除它?如果你对我为什么需要这个感兴趣:我试图制作H.B.'sanswer我的问题CreateguitarchordseditorinWPF与kerning一起工作我不想在字符之间有不自然的空间。编辑所以它不是ControlTemplate至少不仅如此,因为下面的代码将产生完全相同的结果(如上图所示):LLL我认为这个问题很容易回答...有趣的

c# - 为 64 位编译我的应用程序如何使其更快或更好?

我使用C#、.NET、VS.NET2008。除了能够寻址更多内存之外,将我的应用程序编译为64位还有哪些优势?它会更快还是更小?为什么?它是否使它更兼容x64系统(与32位应用程序相比)? 最佳答案 对于native应用程序,您可以获得诸如增加地址空间等好处。但是,.NET应用程序在CLR上运行,CLR抽象出任何底层架构差异。假设您只是处理托管代码,那么针对特定平台没有任何好处;你最好只使用“anycpu”标志集(默认情况下打开)进行编译。这将生成与平台无关的程序集,这些程序集将在运行CLR的任何架构上同样出色地运行。专门针对(比如

c# - 使 System.Threading.Timer 无效会停止吗?

如果我有一个活跃的System.Threading.Timer我将它设置为null,它停止了吗?我意识到调用.Dispose()更合适,但我想要问题的答案。publicclassFoo{privateSystem.Threading.Timer_timer;publicFoo(){//initializetimer}publicvoidKillTimer(){_timer=null;}}更新:经过反复讨论是否将对System.Threading.Timer的单个引用设置为null确实会导致停止它表明没有挥之不去的引用,例如事件列表,因为线程计时器接受单一回调并且不公开事件。如果GC收集

c# - 如何使 webbrowser 控件在 c# 中变为空白?

最初,当网络浏览器刚加载到表单上时,它是空白的(即白色)。一旦我们进入一个特定的网站,有没有办法让它再次变成空白。我试过这些方法,但没有找到可以实现这一目标的方法。还有其他方法还是我遗漏了什么? 最佳答案 试一试:webBrowser1.Navigate("about:blank"); 关于c#-如何使webbrowser控件在c#中变为空白?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

c# - 无限循环使 TimeManager 无效

我在我的WPF应用程序中遇到了一个非常棘手的缺陷,需要追踪。错误信息是:AninfiniteloopappearstohaveresultedfromrepeatedlyinvalidatingtheTimeManagerduringtheLayout/Renderprocess.堆栈跟踪(它的值(value))是:atSystem.Windows.Media.MediaContext.RenderMessageHandlerCore(ObjectresizedCompositionTarget)atSystem.Windows.Media.MediaContext.RenderMes

c# - 如何使设计器可以使用复合组件?

我正在尝试编写自定义WinForms组件,我编写了几个简单的验证器组件,用于与自动连接验证事件的ErrorProvider子类一起使用。得益于IExtenderProvider,所有这些组件都可以添加到表单中并仅使用设计器进行连接。现在,在尝试更上一层楼的过程中,我正在尝试获得一个可与设计器一起使用的复合验证器。我可以启动它并使用代码,但这真的很容易。我想让它以仅限设计师的方式工作。我的困难在于公开一个属性,该属性是具有相同形式的其他验证器的集合。所有验证器都直接继承自Component,并实现了一个IControlValidator接口(interface)。如果有帮助,我愿意改变它