簡體   English   中英

集中 MEF 組合

[英]Centralizing MEF composition

目前我擁有的所有類都處理自己的導入。 使用一個典型的例子:

[ImportMany]
private Lazy<ISomeInterface>[] someOfMyInterfaces { get; set; }
public MyConstructor()
{
    AssemblyCatalog catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
    CompositionContainer container = new CompositionContainer(catalog);
    container.ComposeParts(this);
}

現在,我想使用聚合目錄,並且需要更改所有接受導入的類的實現。 我想把這個邏輯放在一個集中的地方。 基本上消除了我的課程對組成自己的部分的依賴。 有沒有什么好的模式可以做到這一點?

是的,您絕對不想在每個部分中創建一個容器。 相反,嘗試讓每個帶有導入的部件也有一個由另一個部件導入的導出。 然后在您的啟動代碼中創建一個容器並從中提取根導出,這將導致創建所有其他部分並在需要時滿足它們的導入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM