我在Unity中使用Prism 4。我有一個主要項目和一個模塊。該模塊是作爲Silverlight應用程序創建的,因此它構建了一個單獨的xap文件。在沒有參考的情況下從xap在Prism中加載模塊
我像Bootstrapper的ConfigureModuleCatalog一樣加載模塊,就像文檔狀態一樣。
var moduleType = typeof (MyModule);
this.ModuleCatalog.AddModule(
new ModuleInfo
{
ModuleName = moduleType.Name,
ModuleType = moduleType.AssemblyQualifiedName,
InitializationMode = InitializationMode.WhenAvailable,
});
一切工作正常,但我注意到,我的主要XAP文件還包含與我的模塊相關的DLL。因此,我在模塊引用上設置了Copy Local = False,並且它僅在其自己的xap文件中使用模塊dll正確構建。
但現在我的應用程序不會運行,因爲我無法獲取MyModule的類型信息。我得到一個FileNotFoundException。
我發現如果手動輸入ModuleName和ModuleType,並且在ModuleInfo上設置Ref =「MyModule.xap」,我可以完全刪除參考。這工作正常,但這是問題:我經常構建並使用動態版本號。所以AssemblyQualifiedName變得太簡單了。沒有參考,就沒有辦法動態獲取它。如果我從AssemblyQualifiedName中刪除版本號,它不起作用。
當然,還有其他一些方法可以讓模塊從它自己的xap文件中加載,而不會導致在主xap中結束?