2011-09-05 100 views
0

我写了一个DLL文件,做一些数据库的工作,并测试/使用WinForms应用程序,并通过Console.WriteLine("xxx");发送重要的调试消息。现在我在另一个项目中使用DLL,它是一个控制台应用程序 - 我敢肯定,你可以想象我惊喜地看到控制台中的所有额外输出!长话短说,我需要能够在Visual Studio的“输出”部分看到调试输出,但不能看到我的控制台。我已经调查过这个,并且改变了代码,使用Debug.Write("xxx");并用下面的代码进行了测试,但是我需要知道用什么来代替System.Console.Out来达到所需的报告。TextWriterTraceListener(调试输出)VS'输出',而不是控制台

TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out); 
Debug.Listeners.Add(myWriter); 
Debug.Write("Important Message"); 

谢谢 - 安德鲁

TL; DR;需要输出到VS'输出'窗口,而不是控制台或文件。

回答

1

默认情况下,调试时会有VS输出窗口的跟踪侦听器。您可以通过打破代码中的任何位置并检查以下内容来检查该内容:Debug.Listeners。将有至少1个条目,即[0] = {System.Diagnostics.DefaultTraceListener}写入您的VS输出窗口。

所以你neeed做的唯一的事情就是删除自己的监听器的注册,以防止输出到控制台窗口