Как получить событие для каждого необработанного исключения в смешанном приложении WinForms / WPF - PullRequest
2 голосов
/ 05 октября 2011

Я хочу получить событие для каждого необработанного исключения в моем приложении, чтобы я мог записать его в файл журнала. Приложение запускалось как приложение Windows Forms, где это можно легко сделать, подписавшись на статическое событие System.Windows.Forms.Application.ThreadException и вызвав System.Windows.Forms.Application.SetUnhandledExceptionMode.

В чистом приложении WPF это тоже просто, мне просто нужно подписаться на DispatcherUnhandledException экземпляр System.Windows.Application экземпляра.

Но как я могу сделать это для смешанного приложения (то есть приложения Windows Forms с некоторыми диалоговыми окнами и элементами управления WPF), где у меня нет глобального System.Windows.Application экземпляра? System.Windows.Application.Current - это null при запуске, когда я пытаюсь подписаться на событие. Я пытался создать свой собственный экземпляр System.Windows.Application, но, очевидно, он разрушается, когда закрывается первое окно WPF. Если после этого я попытаюсь открыть другое окно WPF, я получу EngineExecutionException.

1 Ответ

1 голос
/ 05 октября 2011

Вы пробовали это -

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...