如何:在C#应用程序代码中禁用/启用WCF跟踪

我花了一段时间才能做到这一点,所以我决定分享一个解决方案,因为它可能会为其他人节省几天的反复试验。

问题:我希望能够在我的C#.NET应用程序中启用/禁用WCF跟踪并选择跟踪输出文件名。 我不希望用户编辑.config文件,那里有太多的错误空间。

这是一个解决方案。

应用程序的.config文件:

                                       

我的C#代码:

 using System; using System.IO; using System.Diagnostics; namespace MyNamespace { public class MyXmlListener : XmlWriterTraceListener { public static String TraceOutputFilename = String.Empty; public static Stream MakeOutputStream() { if (String.IsNullOrWhiteSpace(TraceOutputFilename)) return Stream.Null; return new FileStream(TraceOutputFilename, FileMode.Create); } public MyXmlListener () : base(MakeOutputStream()) { } } } 

要启用WCF跟踪到文件,请在创建WCF对象之前设置TraceOutputFilename:

 MyXmlListener.TraceOutputFilename = "trace.svclog"; 

我从这个论坛获得了很大的好处,我希望这篇文章付出代价!

请参阅指定完全限定类型名称以在.config文件中正确设置“类型”。