2008-12-14 4 views
6

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

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

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

ответ

14

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

4

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

Debug.Listeners.Add(new ConsoleTraceListener()) 

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

Смежные вопросы