Click here to Skip to main content
15,893,161 members
Articles / Web Development / ASP.NET

Download "XAP" Packages on Demand in Silverlight

Rate me:
Please Sign up or sign in to vote.
4.60/5 (5 votes)
8 Oct 2010CPOL8 min read 51.1K   1.4K   26  
This article introduces a method to download and use "XAP" packages on demand in Silverlight.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace XapLoader
{
    public partial class App : Application
    {
        public Grid ApplicationVisualRoot;

        public App()
        {
            this.Startup += this.Application_Startup;
            this.Exit += this.Application_Exit;
            this.UnhandledException += this.Application_UnhandledException;

            InitializeComponent();
        }

        private void Application_Startup(object sender, StartupEventArgs e)
        {
            ApplicationVisualRoot = new Grid();
            ApplicationVisualRoot.Children.Add(new Splash());
            this.RootVisual = ApplicationVisualRoot;
        }

        private void Application_Exit(object sender, EventArgs e) { }

        private void Application_UnhandledException(object sender,
            ApplicationUnhandledExceptionEventArgs e)
        {
            if (!System.Diagnostics.Debugger.IsAttached)
            {
                e.Handled = true;
                Deployment.Current.Dispatcher
                    .BeginInvoke(delegate { ReportErrorToDOM(e); });
            }
        }

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

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
I have been working in the IT industry for some time. It is still exciting and I am still learning. I am a happy and honest person, and I want to be your friend.

Comments and Discussions