[英]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.