TextWriterTraceListener (отладочный вывод) для VS 'Output', а не для консоли - PullRequest
0 голосов
/ 06 сентября 2011

Я написал файл DLL, который выполняет некоторую работу с базой данных, и проверил / использовал приложение winforms, и отправлял важные сообщения отладки через Console.WriteLine("xxx");.Сейчас я использую DLL в другом проекте, который является Консольным приложением - я уверен, что вы можете себе представить мое удивление, увидев весь дополнительный вывод в консоли!Короче говоря, Мне нужно иметь возможность видеть выходные данные отладки в разделе «Вывод» в Visual Studio, но не в моей консоли. Я изучил это и изменил код, чтобы использовать Debug.Write("xxx");и тестирование с использованием приведенного ниже кода, однако мне нужно знать, чем заменить System.Console.Out на получение желаемых отчетов.

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

Спасибо - Эндрю

TL; DR;Требуется вывод в окно VS 'Output', а не в консоль или файл.

1 Ответ

1 голос
/ 06 сентября 2011

По умолчанию при отладке имеется прослушиватель трассировки для окна вывода VS. Вы можете проверить это, взломав в любом месте вашего кода и проверив содержимое: Debug.Listeners. Будет по крайней мере 1 запись, а именно [0] = {System.Diagnostics.DefaultTraceListener}, которая записывает в ваше окно вывода VS.

Так что единственное, что вам нужно сделать, это удалить регистрацию вашего собственного слушателя, чтобы предотвратить вывод в окно консоли

...