`
wyf
  • 浏览: 437923 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

动态载入xap文件

阅读更多
myButton.Click += new RoutedEventHandler(myButton_Click);

 

        void myButton_Click(object sender, RoutedEventArgs e)

        {

            WebClient client = new WebClient();

            client.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);

 

            //打开打包的xap文件

            client.OpenReadAsync(new Uri("Binglang.ExternalProject.xap", UriKind.Relative));

 

        }

 

        void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)

        {

//通过AppManifest.xaml文件取出动态库的信息

             Assembly asm = LoadAssemblyFromXap(e.Result, "Binglang.ExternalProject.dll");

 

            ////使用反射创建相关的实例,并在页面上加载

            holder.Children.Clear();

            UIElement element = asm.CreateInstance("Binglang.ExternalProject.MainPage") as UIElement;

            this.holder.Children.Add(element);

 

        }

 

        /// <summary>

        /// 通过AppManifest.xaml文件取出动态库的信息

        /// </summary>

        /// <param name="packageStream">OpenReadCompletedEventArgs e.Result</param>

        /// <param name="assemblyName">动态库文件名</param>

        /// <returns></returns>

   Assembly LoadAssemblyFromXap(Stream packageStream, string assemblyName)

        {

            //解包,读取AppManifest.xaml文件信息

            string appManifest = new StreamReader(Application.GetResourceStream(new StreamResourceInfo(packageStream, null), new Uri("AppManifest.xaml", UriKind.Relative)).Stream).ReadToEnd();

 

            //------------解析AppManifest.xaml信息内容

 

            XElement deploymentRoot = XDocument.Parse(appManifest).Root;

            List<XElement> deploymentParts = (from assemblyParts in deploymentRoot.Elements().Elements()

                                              select assemblyParts).ToList();

 

            Assembly asm = null;

            foreach (XElement xElement in deploymentParts)

            {

                string source = xElement.Attribute("Source").Value;

                AssemblyPart asmPart = new AssemblyPart();

                StreamResourceInfo streamInfo = Application.GetResourceStream(new StreamResourceInfo(packageStream, "application/binary"), new Uri(source, UriKind.Relative));

                if (source == assemblyName)

                {

                    asm = asmPart.Load(streamInfo.Stream);

                }

                else

                {

                    asmPart.Load(streamInfo.Stream);

                }

            }

            return asm;

        }



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/manimanihome/archive/2009/08/29/4498244.aspx

 

分享到:
评论

相关推荐

    XAP文件运行程序

    XAP文件是微软Silverlight平台开发的应用程序包格式,主要用于构建和分发基于浏览器的富互联网应用程序(RIA)。XAP文件包含所有必要的组件,如代码、资源、配置信息等,以便在支持Silverlight的浏览器中运行。然而...

    clientBin silverlight xap文件

    **客户端Bin目录与Silverlight XAP文件详解** 在开发基于Silverlight的应用程序时,`clientBin`目录扮演着至关重要的角色。这个目录是ASP.NET Web应用程序的默认结构的一部分,用于存放客户端可执行文件,尤其是...

    国外著名Silverlight网站相应的XAP文件

    1. 文件格式:XAP(XAML Application Package)是Silverlight应用的打包文件,以.zip格式压缩,包含了XAML(可扩展应用程序标记语言)文件、DLL(动态链接库)、资源文件和配置信息。 2. XAML:XAML是XML的一个子集...

    SL动态加载外部xap包

    SL动态加载外部xap包是一种在Silverlight应用中实现代码分离和按需加载的技术。Silverlight是微软开发的一种运行于浏览器的RIA(Rich Internet Application)技术,它允许开发者创建具有丰富用户体验的网络应用。XAP...

    xap软件.zip

    标题中的"xap软件.zip"指的是一个包含XAP文件的压缩包。XAP全称为Windows Phone Application Package,是微软为Windows Phone平台开发的应用程序打包格式。这些XAP文件类似于Android的APK文件,用于存储和分发针对...

    SilverLight和WCF配合异步调用修改xap文件内的配置

    4. **修改XAP文件**:XAP文件是Silverlight应用程序的打包文件,包含了所有的资源、代码和配置。通常情况下,XAP文件在部署后不应被修改,因为它是安全沙盒的一部分。但是,如果你需要在运行时动态调整配置,可以...

    WP7XAP应用安装软件Tom XAP Installer

    在Windows Phone平台中,XAP文件是应用程序的打包格式,类似于Android的APK或iOS的IPA文件。这款工具的出现,旨在帮助用户更便捷地在WP7设备上安装非市场来源的XAP应用,拓展了用户对应用获取的途径。 首先,了解...

    ppt转xap工具,ppt转xap工具

    XAP文件是Microsoft Silverlight应用程序的打包文件格式,它包含了运行Silverlight应用程序所需的所有资源,包括代码、图像、样式等。在Windows Phone平台上,开发者通常会将应用打包成XAP文件以便于部署和分发。...

    xap部署越狱工具

    Xap文件是微软为WP平台设计的一种特殊格式的应用程序包,它包含了应用程序的所有组件,如代码、资源、配置文件等。而“Xap部署”则指将这种Xap文件安装到WP设备上的过程。 在WP系统中,正常情况下,用户只能通过...

    在Windows Phone 7上安装xap文件

    在Windows Phone 7平台上,开发和测试应用通常涉及安装XAP文件。XAP(XNA Package)文件是Windows Phone应用程序的打包格式,包含了应用程序的所有组件,包括代码、资源和元数据。以下是一份详细的步骤指南,帮助你...

    Tom XAP Installer v1

    【压缩包子文件的文件名称列表】:Tom XAP Installer.exe 是该软件的执行文件,通常用于安装程序。这个.exe文件是Windows操作系统下的可执行文件格式,用户只需双击运行,即可启动安装过程,按照向导提示完成Tom XAP...

    XAP 1.6安装包

    XAP 1.6设计时考虑到了可扩展性,允许用户根据需求动态添加或移除硬件资源,而不会影响正在运行的应用程序。这种弹性扩展能力对于应对流量波动和应对未来增长非常有用。 **8. 监控和管理工具** XAP 1.6提供了强大的...

    XAP中程序集清除器

    XAP中多余程序集清除器:一个用SL开发的商业产品在发布时,可能有若干AXP包文件。一般情况下,有一个主XAP包文件,由主包文件下载其它包文件并装入内容。这种情况下,包文件间可能都会包含共用的程序集DLL,为了减少...

    xap安装器最新版本,wmp8可用

    XAP,全称Silverlight XAP文件,是微软Silverlight开发平台上的应用程序包格式。它包含了运行Silverlight应用所需的所有组件,如代码、资源和配置信息。XAP安装器可能是一个工具,允许用户方便地安装和管理这些...

    Tom XAP Installer 1.2 汉化版

    比以前的Tom XAP Installer 有很大改善,不用再启动Application Deployment安装了。 连接手机与电脑后,保持Zune运行。 以管理员身份运行Tom XAP Installer,然后选择设备类型,再选择要安装的xap程序,保持手机在...

    cocos2dxForWp8引擎示例生成的tests.xap安装文件

    进来学习cocos2dx,为了研究对wp8的支持,将 cocos2dxForWp8中自带的样例工程打成了一个支持wp8安装的安装包,tests.xap,手机解锁的同学可以下来装手机上,体验一下cocos2dx对WP8的支持

    Tom XAP Installer

    Tom XAP 你懂得,芒果破解软件安装必备工具。

    手机wp7系统xap安装器

    wp7手机操作系统安装器,主要应用于安装xap类型的程序,操作简单易懂

Global site tag (gtag.js) - Google Analytics