我用反射加载了一个 WPF MVVM 类库。我还需要一个异常处理程序,如此处所述。
由于这是一个托管 WPF 应用程序,我不能使用 App.xaml !这就是为什么我在加载我的应用程序的类中实现了所有需要的内容,如此处所述,包括:
Application.Current.DispatcherUnhandledException += new DispatcherUnhandledExceptionEventHandler(Current_DispatcherUnhandledException);
这里的问题是,当我抛出一个异常(从后台工作线程顺便说一句)时,它不能正常工作。实际上,如果我通过调用 Dispatcher.Invoke 手动抛出 NullReferenceException(为了在 UI 线程中抛出异常),并且当我进入 Current_DispatcherUnhandledException 调试器时,我看到的异常不是 NullReferenceException,而是地狱般的 TargetInvocation 异常带有“调用的目标已引发异常”消息。
我发现这个异常可能是由调用方法抛出的,该方法通过反射调用 WPF dll。
看起来 NullReferenceException在 wpf 应用程序之前被“WPF 类库调用方法”捕获...
这让我快疯了!
请帮忙 !