2011-04-04 71 views
1

我最近從MEF轉換爲Unity - 出於各種原因。棱鏡,統一 - 從MEF轉換

我以前有一個IMenuService對象在我用MEF導出並導入其他模塊的模塊中。我相信我與Unity有關的是將統一容器作爲參數傳遞給我的模塊的構造函數,然後用它來註冊IMenuService,但是,我不知道如何做到這一點(什麼參數類型?我必須首先在引導程序中註冊容器以將其導入到模塊中?)

另外,在MEF中,還有ModuleDependency屬性以確保其他模塊首先被加載......在Unity中,同樣的東西會是什麼?

編輯:想通了IUnityContainer說法...但是,仍然好奇秒部分...依賴

回答

1

因爲你已經想通了,你應該有你的模塊類型依賴於IUnityContainer。你並不需要註冊這個容器,以便能夠在模塊中使用它(如果你想要的話,你可以做它,並使事情更清晰)。最後,模塊依賴關係獨立於您正在使用的IoC容器,所以它應該工作得很好。您可以使用以及配置從XAML中ModuleCatalog

protected override IModuleCatalog CreateModuleCatalog() 
{ 
    return ModuleCatalog.CreateFromXaml(new Uri("catalog.xaml", UriKind.Relative)); 
} 

,並在catalog.xaml文件,你可以使用ModuleInfoDependsOn屬性中指定的依賴關係。

希望這有助於:)

+0

@Abdoul - 挖多一點之後,它看起來好像[ModuleDependency]屬性是棱鏡的一部分,而不是MEF,所以應該仍然正常工作呢? – 2011-04-04 19:23:50

+0

是的,確切地說,它應該工作得很好。 – AbdouMoumen 2011-04-04 20:23:21