拦截MEF中的依赖关系

时间:2011-10-13 07:15:48

标签: c# .net dependency-injection inversion-of-control mef

是否有可能在MEF处理之前拦截MEF中的依赖请求?

这对于实现装饰器和高级生命周期管理非常有用。

像...一样的东西。

catalogue.AddInterceptor<IExpensiveService>(b => ... return from pool ...);

甚至......

catalogue.AddInterceptor<IExpensiveService>(b => new Decorator(b()));

(其中'b'是解析服务的基础MEF分辨率函数)

1 个答案:

答案 0 :(得分:1)

不是开箱即用,但您可以编写自己的ExportProviderComposablePartCatalog实现来执行此操作。

MefContrib似乎实现了类似的内容,请查看InterceptingCatalog。关于它,请参阅此(可能已过时)blog post