我有一个SL OOB应用程序(它只运行OOB)并且想知道app.xaml.css中的ReportErrorToDOM代码:
根据我的理解,HtmlPage不会在OOB中工作,因为没有DOM / HTML?这就是为什么这段代码包含在TryCatch块中的原因? (这是新SL4应用程序的默认设置。)
要让我的OOB应用程序向UI显示未处理的错误,我应该判断用MessageBox.Show替换HTMLPage吗?
我在谷歌上找不到任何关于此的内容,赞赏意见...
private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
{
try
{
string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
}
catch (Exception)
{
}
}
答案 0 :(得分:1)
作为初始起始位置,您应该使用使用MessageBox.Show的代码替换代码以显示错误。
适合生产质量的发布取决于应用类型。严格来说,如果您的应用程序遇到未处理的异常,它将处于不确定的状态,因此消息框和/或替换根视觉可能是有意义的。
如果它是游戏,那么简单地吞下错误甚至可能是合适的,或者只是在某些日志中注意到它。
答案 1 :(得分:0)
看看VS中的Silverlight导航应用程序模板 - 它使用ChildWindow来显示错误,这也适用于OOB。您可以从此模板生成虚拟项目,并将大部分代码复制/粘贴到您的应用程序以快速进行,然后调整UI以满足您的需求。