這篇繼續介紹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>