MEF 編程指南(十二):批量組合

MEF 容器實例並不是不可變的。若是目錄支持改變(像監控目錄變更)或者在運行時添加/移除部件均可能發生改變。之前,你不得不作出改動而且調用 CompositionContainer 上的 Compose 方法。在 Preview 4 release上,咱們已經介紹對批量組合的支持。編程

 
批處理包含一系列添加或移除的部件。在執行更改以後,容器自動地觸發一次更新重組導入致使的變化的組合。
設想一個設置窗口的場景,用戶選中或者取消選中一個選項。那些會映射當前的部件或者不在容器中的部件。請求批處理,你將會調用 Compose 方法,以下: 
 
var batch = new CompositionBatch();
batch.AddPart(partInstance1);
batch.AddPart(partInstance2);
batch.RemovePart(part3);
 
container.Compose(batch);

 

對於類型實際上使用的特性編程模型,AttributedModel|Services 上有一些擴展方法用於 CompositionContainer 容許你在一些常規狀況下隱藏 CompositionBatch。 
 
// creates a CompositionBatch and calls AddPart on all the passed parts followed by Compose
container.ComposeParts(partInstance1, partInstance2,... );
// creates a CompositionBatch and calls AddExportedValue<T> followed by Compose.
container.ComposeExportedValue<IFoo>(instanceOfIFoo); 

 

相關文章
相關標籤/搜索