Welcome 微信登录

首页 / 网页编程 / ASP.NET / prism v2之旅(7)

prism v2之旅(7)2011-12-13 博客园 Clingingboy这篇继续介绍Module的功能.

第5篇已经介绍过模块的一些基本功能了,这篇介绍模块在silverlight的特殊应用.

silverlight的项目生成文件是xap文件,其提供了一个非常方便的功能,即相互的xap文件可以相互加载,就如flash的swf文件一样可以动态加载.建议你在看下去之前先看一下TerryLee写的这两篇文章

这里我简单的总结一下silverlight程序初始化的步骤.总目标是要拿到xap里面的UserControl

1.先加载xap文件,xap文件包括一个xaml文件和一堆相关的dll(这里就可以知道dll越多,加载速度越慢了)

2.找到入口点主程序,看Deployment节点的两个属性,一个是程序集,一个是App入口点.然后就可以通过反射初始化了.

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"      EntryPointAssembly="RemoteModuleLoading.Silverlight"      EntryPointType="RemoteModuleLoading.Silverlight.App"      RuntimeVersion="2.0.31005.0"> <Deployment.Parts>  <AssemblyPart x:Name="RemoteModuleLoading.Silverlight" Source="RemoteModuleLoading.Silverlight.dll" />  <AssemblyPart x:Name="Infrastructure.Silverlight" Source="Infrastructure.Silverlight.dll" />  <AssemblyPart x:Name="Microsoft.Practices.Composite.Silverlight" Source="Microsoft.Practices.Composite.Silverlight.dll" />  <AssemblyPart x:Name="Microsoft.Practices.Composite.UnityExtensions.Silverlight"         Source="Microsoft.Practices.Composite.UnityExtensions.Silverlight.dll" />  <AssemblyPart x:Name="Microsoft.Practices.Unity" Source="Microsoft.Practices.Unity.dll" />  <AssemblyPart x:Name="Microsoft.Practices.ServiceLocation.Silverlight"         Source="Microsoft.Practices.ServiceLocation.Silverlight.dll" />  <AssemblyPart x:Name="Microsoft.Practices.Composite.Presentation.Silverlight"         Source="Microsoft.Practices.Composite.Presentation.Silverlight.dll" />  <AssemblyPart x:Name="System.Windows.Controls" Source="System.Windows.Controls.dll" /> </Deployment.Parts></Deployment>