当您需要处理WPF应用程序中的所有异常时,您可以使用:
Application.DispatcherUnhandledException
事件
我的问题是:
我创建了一个 WPF自定义控件库,因此我没有app.xaml文件。我无法定义Application.DispatcherUnhandlerException。
更重要的是,我的库将用于非基于.net的应用程序。所以我无法在主应用程序中定义Application.DispatcherUnhandlerException,因为它没有。
有没有办法在dll级别创建它?
答案 0 :(得分:3)
答案 1 :(得分:0)
我认为您不需要app.xaml来注册这些活动。
如果您确实想这样做,请将此代码添加到您的某个类中的静态初始化程序中,以确保任何使用该控件库的人都可以使用该代码:
if (AppDomain.CurrentDomain != null) {
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
}
if (Dispatcher.CurrentDispatcher != null) {
Dispatcher.CurrentDispatcher.UnhandledException += CurrentDispatcher_UnhandledException;
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {
// Do something with the exception in e.ExceptionObject
}
static void CurrentDispatcher_UnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) {
// Do something with the exception in e.Exception
}