Silverlight2.0动态加载xap文件

     范例来自webcast,由于版本问题,对其中代码做出了修正。简单示范在silverlight中如何动态加载xap文件。

     动态加载,也就是要在运行时,加载并解析包含xap文件信息的AppManifest.xaml文件,找到合适的dll信息,通过反射机制生成silverlight相关实例。
     
     建立项目,包括三个专案:其中DynamicXap为要动态加载的xap,TanMiLiLie为一个web应用。

Silverlight2.0动态加载xap文件

此项目DynamicXap最终的标注文件AppManifest.xaml。

Code

     在AssemblyPart name="DynamicXap" 的source中包含的DynamicXap.dll即是此xap文件包含的有效dll,其中包含了若干page文件,我们就是要通过解析此标注文件来生成特定的page信息。

 DynamicXap中现在只包括个Page.xaml,其中的定义:

Code

TanMiLiLie:在此silverlight应用动态加载上述xap文件。

Code
CodeBind:
Code
其中涉及到的两个class的定义:
Code

 

Code

最后运行web应用TanMiXiLieTestPage.aspx,即可看到最终效果。

注:1.其中涉及Linq to xml ,Linq to Collection的应用
      2.WebClient的应用。
      3.解析AppManifest.xaml时,采用linq to xml方式,避免了“Invalidoperation” 异常的出现。

你可能感兴趣的:(silverlight)