从CompositonContainer中删除零件

时间:2012-06-06 01:47:41

标签: .net mef

Wen使用合成批处理从容器中移除部件,如何获取需要移除的部件的引用? compositon批量删除方法采用composablepart。 AddPart方法还采用了composablepart类型参数,但有一个过载(扩展方法),它接受一个对象并使用AttributedModelServices.CreatePart来获取一个composablepart。我尝试在从容器中获取的引用上使用AttributedModelServices.CreatePart,然后将其用于remove方法,但它没有将其从容器中删除。

我可以保存原始AddPart调用返回的引用,但这意味着我必须在整个应用程序中保留该引用。不是我想做的。我已经看到了在容器部件上循环的例子,但这对我来说似乎很容易。

如何让容器返回我需要的东西。

Psuedo代码

CompositionBatch batch = new CompositionBatch([] { Part1, Part2 }, []{});
Container.Compose(batch);

var partRef = Container.GetExport<Part2>();

batch = new CompositionBatch();
batch.RemovePart(partRef);

container.Compose(batch);

0 个答案:

没有答案