2011-09-05 105 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做的唯一的事情就是刪除自己的監聽器的註冊,以防止輸出到控制檯窗口