我不确定这是否可行,但我目前正在主应用程序集中加载大部分模块,我现在尝试加载外部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设置的吗?
感谢您的时间
答案 0 :(得分:2)
戴夫说的......
如果不明显,您需要进行的唯一更改(假设您的xap文件位于同一目录中)是将ref属性设置为:
themeModule.Ref = "Theme_External.xap";
如果它位于低于shell xap文件的目录中,则可以使用相关网址。如果没有,您将需要绝对网址。
答案 1 :(得分:1)
您可以按需下载XAP文件,只要它们与主应用程序位于同一个域中即可。 Silverlight中有一篇关于动态数据传递的综合文章here。
如果要下载托管在其他域上的XAP文件,则必须在该域上拥有Cross-Domain Policy file。