Silverlight PRISM加载外部XAP模块

时间:2009-10-19 11:57:53

标签: silverlight module prism loading

我不确定这是否可行,但我目前正在主应用程序集中加载大部分模块,我现在尝试加载外部XAP模块。

我有这样的事情:

ModuleInfo themeModule = new ModuleInfo();
    themeModule.ModuleName = "Theme_External";
    themeModule.ModuleType = "Theme_External.Theme_External_Module, Theme_External, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
    themeModule.Ref = "file://Theme_External.xap";
    themeModule.InitializationMode = InitializationMode.OnDemand;
    catalog.AddModule(themeModule);

然后我意识到你不能使用那个ref,因为它使用Silverlight中没有的本地文件访问。这对我有用的唯一原因是我直接参考了我需要删除的主题项目。我想要在http://localhost/Theme_External.xap说出来,或者稍后指向一个远程网址。

这是我可以用当前PRISM设置的吗?

感谢您的时间

2 个答案:

答案 0 :(得分:2)

戴夫说的......

如果不明显,您需要进行的唯一更改(假设您的xap文件位于同一目录中)是将ref属性设置为:

themeModule.Ref = "Theme_External.xap";

如果它位于低于shell xap文件的目录中,则可以使用相关网址。如果没有,您将需要绝对网址。

答案 1 :(得分:1)

您可以按需下载XAP文件,只要它们与主应用程序位于同一个域中即可。 Silverlight中有一篇关于动态数据传递的综合文章here

如果要下载托管在其他域上的XAP文件,则必须在该域上拥有Cross-Domain Policy file