Как приложение OOB Silverlight 4 отображает необработанные ошибки в пользовательском интерфейсе? (HTMLPage) - PullRequest
1 голос
/ 17 декабря 2010

У меня есть приложение SL OOB (оно только запускает OOB), и мне было интересно узнать о коде ReportErrorToDOM в app.xaml.css:

Насколько я понимаю, HtmlPage не будет работать в OOB, поскольку нетDOM / HTML?Поэтому этот код обернут в блок TryCatch?(это значение по умолчанию для нового приложения SL4).

Чтобы мое приложение OOB отображало необработанные ошибки в пользовательском интерфейсе, следует ли мне заменить HTMLPage на MessageBox.Show?

Iничего не могу найти в Google по этому поводу, мнения оценены ...

  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)
        {
        }
    }

Ответы [ 2 ]

1 голос
/ 17 декабря 2010

В качестве начальной начальной позиции да, вы должны заменить код кодом, который использует MessageBox.Show для отображения ошибки.

То, что подходит для выпуска качественной продукции, будет зависеть от типа приложения. Строго говоря, если ваше приложение обнаружило необработанное исключение, оно находилось бы в неопределенном состоянии, поэтому может иметь смысл окно сообщения и / или замена корневого визуального элемента.

Если это игра, то простое проглатывание ошибки может быть даже уместным или просто указание на это в каком-то журнале.

0 голосов
/ 30 декабря 2010

Взгляните на шаблон приложения Silverlight Navigation Application в VS - он использует ChildWindow для отображения ошибок, и это также работает OOB. Вы можете просто сгенерировать фиктивный проект из этого шаблона и скопировать / вставить большую часть кода в ваше приложение, чтобы быстро начать работу, а затем настроить интерфейс в соответствии с вашими потребностями.

...