WPF 重定向在Application_DispatcherUnhandledException

本文关键字:DispatcherUnhandledException Application 重定向 WPF | 更新日期: 2023-09-27 18:36:08

我是WPF的新手,从app.xaml重定向到新窗口时遇到了一些问题.cs将未处理的异常事件调度到新窗口。

基本上,我试图模仿Web应用程序处理错误的方式

  1. 错误被捕获
  2. 错误通过埃尔玛记录
  3. 错误通过电子邮件通过Elmah发送
  4. 如果日志记录/电子邮件成功,用户将被重定向到错误页面,否则错误将不予处理

我调用的代码是 -

private void Application_DispatcherUnhandledException(object sender,
                           System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
    ..... Processing Code
    NavigationService svc = NavigationService.GetNavigationService(this);
    svc.Navigate(new DIEM.WindowsApps.DIEMWindows.ErrorWindow());
}

我遇到的问题是,当调用NavigationService.GetNavigationService(this)时,"this"是空的(大概是因为App.xaml.cs不是页面,它继承自Application)。

有什么办法吗?我做错了吗?!

提前谢谢。

WPF 重定向在Application_DispatcherUnhandledException

使用在应用程序中其他位置使用的相同导航服务。如果它是 AppWindow ,则可以将其另存为 App 类中的属性并访问它:

public AppWindow()
{
    ((App)Application.Current).AppWindow = this;
}
class App : Application
{
    public AppWindow AppWindow { get; set; }
    private void Application_DispatcherUnhandledException(object sender,
                               DispatcherUnhandledExceptionEventArgs e)
    {
        //..... Processing Code
        NavigationService svc = NavigationService.GetNavigationService(AppWindow);
        svc.Navigate(new DIEM.WindowsApps.DIEMWindows.ErrorWindow());
    }
}
相关文章:
  • 没有找到相关文章