在Silverlight中如何访问外部xap文件中UserControl

概述

众所周知,在Silverlight 2开始每个项目编译后都会打包成为一个xap文件,如果我们要访问当前xap文件中的UserControl比较容易, 那我们如何访问一个外部xap文件中的内容呢?甚至于如何访问一个互联网上的xap文件呢?

需求

现在我们先来看一下需求,大致是这样子的,在服务端我们有两个xap文件,其中MainProject.xap文件将会在 MainProjectTestPage.aspx中引用,而ExternalProject.xap文件中的UserControl将会在MainProject.xap文件中访问,并进行显示,如下 图所示:

现在我们来建立相关的项目,最终完成的项目结构如下图所示:

这样在编译后,将会在ClientBin文件夹下产生两个.xap文件,现在我们将在MainProject.xap文件中访问ExternalProject.xap中的 UserControl。

分析

在实现这个过程中,我们将会遇到两个问题:

1.因为没有任何页面引用ExternalProject.xap文件,所以它不会下载到客户端,这一点我们可以通过编码的方式来下载它。

2.访问ExternalProject.xap中的UserControl,我们需要找到对应的程序集,以便使用反射,我们知道在xap文件是一个标准的zip文件 ,它会包含相关的程序集(接下来我会写一篇文章专门解释xap文件),如下图所示:

现在解决了xap文件的下载已经程序集的访问问题,我们可以着手来实现了。

时间: 2024-11-03 19:28:42

在Silverlight中如何访问外部xap文件中UserControl的相关文章

angularjs-angularJS写法问题。ng-click等元素事件,能否像jquery一样写到外部js文件中。

问题描述 angularJS写法问题.ng-click等元素事件,能否像jquery一样写到外部js文件中. 如jquery中,HTML页面中DOM元素不需要写事件代码,可以直接把代码写到JS文件中, $("#aaa").on({ click:function(){}, mouseover:function(){} }); $(document).on("click","#aaa",function(){}); 并且同一个事件可以绑定多个方法,请

数据库中导出表中相应字段到指定文件中

数据库中导出某一个表中需要的字段到文件中是公司中经常要做到的事,那怎么实现呢? 比如你要查询enterpriseaics中的所有字段的值到d盘的aa.txt中去,注:aa.txt不能存在,否则会报错. [sql] view plain copy  print? <span style="font-size:18px;">select * from enterpriseaics into outfile 'd:\\aa.txt' ;</span>   当然如果你想

如何把一个头文件中定义的结构体用到另一个头文件中,另一个头文件中定义的结构体又用到改头文件中?

问题描述 如何把一个头文件中定义的结构体用到另一个头文件中,另一个头文件中定义的结构体又用到改头文件中? //栈的头文件声明 #include #include #include "Tree" #ifndef STACK_H #define STACK_H typedef union typelemt{ char ch; Tree t; }typelemt; typedef struct stack{ typelemt* type_stack; int max; }stack; typ

Silverlight读取嵌入在xap文件中的文件内容

假如在 SilverlightApplication6 工程中添加一个文件夹 Content ,下面放置一个 mxh.txt 文件和 mxh.jpg 的照片,文件内容随便写.在"解决方案浏览器"的文件属性中,设置"Build Action"为"Content";"Copy to Output Directory"属性设置为"Do not copy". 在 xaml 文件中输入: XAML 代码 <Us

类中数据库访问-求php开发中数据库连接创建和关闭的较好时机问题

问题描述 求php开发中数据库连接创建和关闭的较好时机问题 刚刚学php不久,在用php写一个毕业设计,可是在数据库连接的地方犯了难, 最开始用的是配置文件的方法, 在config.inc.php中设置了数据库连接的一些参数,比如说数据库名密码等等, 然后在db.conn.php中创建一个mysqli对象,连接上数据库,并设置它的编码. 后来在应用的过程中发现特别麻烦,每次都要用include将这些文件导入,然后再使用 $db进行数据库的访问,可是后来在一些类中处理,打算在构造函数中创建数据库连

java实现合并2个文件中的内容到新文件中_java

编写一个程序 将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中 a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔. 复制代码 代码如下: package javase.arithmetic; import com.google.common.base.Charsets; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.

silverlight beet - 从xap文件中加载图片

xaml写法: <Image x:Name="xImage" Stretch="Uniform" Source="/pic;component/img.jpg" /> c#写法: xImage.Source = new BitmapImage(new Uri("/pic;component/img.jpg", UriKind.Relative)); 其中"/{0};component/{1}"0

ASP将数据库中的信息存储至XML文件中

xml|数据|数据库   save.ASP      <!-- #include file="adoVBs.inc" -->   <%   ' Constants file included above.      ' 如果文件存在则删除   Dim objFSO   Set objFSO = Server.CreateObject("Scripting.FileSystemObject")   If objFSO.FileExists(Serve

asp下将数据库中的信息存储至XML文件中_应用技巧

save.asp <!-- #include file="adovbs.inc" --> <% ' Constants file included above. ' 如果文件存在则删除 Dim objFSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(Server.MapPath("db_xml.xml")