在Windows窗体应用程序中使用Console.WriteLine

我有一个外部DLL,其源代码是C#。 从DLL的文档中,我确定它使用Console.WriteLine将其调试消息写入控制台。

我想在WinForms应用程序中使用此DLL。 但是,我发现我无法看到DLL发出的调试消息,因为WinForms应用程序没有控制台。

有没有办法捕获那些调试消息,甚至可能是一个简单的日志文件? 当然,使用ProcessInfo.RedirectStandartOutput将无法正常工作,因为我不将DLL用作进程。

使用您控制的TextWriter调用Console.SetOut (例如StringWriter)。

您最好使用System.Diagnostics命名空间和Debug.WriteLine。 Debug支持可以在运行时或通过app / web.config文件添加的“侦听器”。 例如:-

  Debug.Listeners.Add(new ConsoleTraceListener()) 

如果将任何自定义调试日志记录实现为跟踪侦听器,则可以非常轻松地捕获应用程序范围内的跟踪消息。