PageRenderTime 47ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/V4/MVVM RI/MVVM.Client.Tests/App.xaml.cs

#
C# | 75 lines | 44 code | 8 blank | 23 comment | 1 complexity | 0142aa833d3a6e86c429c35cf3f2dced MD5 | raw file
  1. //===================================================================================
  2. // Microsoft patterns & practices
  3. // Composite Application Guidance for Windows Presentation Foundation and Silverlight
  4. //===================================================================================
  5. // Copyright (c) Microsoft Corporation. All rights reserved.
  6. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
  7. // OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
  8. // LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  9. // FITNESS FOR A PARTICULAR PURPOSE.
  10. //===================================================================================
  11. // The example companies, organizations, products, domain names,
  12. // e-mail addresses, logos, people, places, and events depicted
  13. // herein are fictitious. No association with any real company,
  14. // organization, product, domain name, email address, logo, person,
  15. // places, or events is intended or should be inferred.
  16. //===================================================================================
  17. using System;
  18. using System.Windows;
  19. using Microsoft.Silverlight.Testing;
  20. namespace MVVM.Client.Tests
  21. {
  22. public partial class App : Application
  23. {
  24. public App()
  25. {
  26. this.Startup += this.Application_Startup;
  27. this.Exit += this.Application_Exit;
  28. this.UnhandledException += this.Application_UnhandledException;
  29. InitializeComponent();
  30. }
  31. private void Application_Startup(object sender, StartupEventArgs e)
  32. {
  33. this.RootVisual = UnitTestSystem.CreateTestPage();
  34. }
  35. private void Application_Exit(object sender, EventArgs e)
  36. {
  37. }
  38. private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
  39. {
  40. // If the app is running outside of the debugger then report the exception using
  41. // the browser's exception mechanism. On IE this will display it a yellow alert
  42. // icon in the status bar and Firefox will display a script error.
  43. if (!System.Diagnostics.Debugger.IsAttached)
  44. {
  45. // NOTE: This will allow the application to continue running after an exception has been thrown
  46. // but not handled.
  47. // For production applications this error handling should be replaced with something that will
  48. // report the error to the website and stop the application.
  49. e.Handled = true;
  50. Deployment.Current.Dispatcher.BeginInvoke(delegate { this.ReportErrorToDOM(e); });
  51. }
  52. }
  53. private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
  54. {
  55. try
  56. {
  57. string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
  58. errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
  59. System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
  60. }
  61. catch (Exception)
  62. {
  63. }
  64. }
  65. }
  66. }