Использование Console.WriteLine в приложении Windows Forms - PullRequest
6 голосов
/ 14 декабря 2008

У меня есть внешняя DLL, исходный код которой C #. Из документации к DLL я определил, что она записывает свои сообщения отладки на консоль, используя Console.WriteLine.

Я бы хотел использовать эту DLL в приложении WinForms. Однако я обнаружил, что не вижу отладочных сообщений, отправляемых DLL, поскольку приложение WinForms не имеет консоли.

есть ли способ перехватить эти отладочные сообщения, возможно, даже в простой файл журнала? Конечно, использование ProcessInfo.RedirectStandartOutput не будет работать, так как я не использую DLL как процесс.

Ответы [ 2 ]

14 голосов
/ 14 декабря 2008

Вызов Console.SetOut с TextWriter, которым вы управляете (например, StringWriter).

4 голосов
/ 14 декабря 2008

Лучше всего использовать пространство имен System.Diagnostics и Debug.WriteLine. Debug поддерживает «слушатели», которые могут быть добавлены во время выполнения или через файлы app / web.config. Например: -

  Debug.Listeners.Add(new ConsoleTraceListener())

Если вы внедрили какую-либо пользовательскую запись в журнал отладки в качестве прослушивателя трассировки, вы можете очень легко перехватить приложение трассировки сообщений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...