在Silverlight中访问外部xap文件中UserControl概述众所周知,在Silverlight2开始每个项目编译后都会打包成为一个xap文件,如果我们要访问当前xap文件中的UserControl比较容易,那我们如何访问一个外部xap文件中的内容呢
甚至于如何访问一个互联网上的xap文件呢
本文将简单介绍一下在Silverlight中如何访问外部xap文件
需求现在我们先来看一下需求,大致是这样子的,在服务端我们有两个xap文件,其中MainProject
xap文件将会在MainProjectTestPage
aspx中引用,而ExternalProject
xap文件中的UserControl将会在MainProject
xap文件中访问,并进行显示,如下图所示:现在我们来建立相关的项目,最终完成的项目结构如下图所示:这样在编译后,将会在ClientBin文件夹下产生两个
xap文件,现在我们将在MainProject
xap文件中访问ExternalProject
xap中的UserControl
分析在实现这个过程中,我们将会遇到两个问题:1
因为没有任何页面引用ExternalProject
xap文件,所以它不会下载到客户端,这一点我们可以通过编码的方式来下载它
访问ExternalProject
xap中的UserControl,我们需要找到对应的程序集,以便使用反射,我们知道在xap文件是一个标准的zip文件,它会包含相关的程序集(接下来我会写一篇文章专门解释xap文件),如下图所示:现在解决了xap文件的下载已经程序集的访问问题,我们可以着手来实现了
实现实现的过程也是相当简单,首先我们使用WebClient去下载xap文件,相信大家都知道该怎么做了,如下代码所示voidmyButton_Click(objectsender,RoutedE