是否有可能在MEF处理之前拦截MEF中的依赖请求?
这对于实现装饰器和高级生命周期管理非常有用。
像...一样的东西。
catalogue.AddInterceptor<IExpensiveService>(b => ... return from pool ...);
甚至......
catalogue.AddInterceptor<IExpensiveService>(b => new Decorator(b()));
(其中'b'是解析服务的基础MEF分辨率函数)
答案 0 :(得分:1)
不是开箱即用,但您可以编写自己的ExportProvider或ComposablePartCatalog实现来执行此操作。
MefContrib似乎实现了类似的内容,请查看InterceptingCatalog。关于它,请参阅此(可能已过时)blog post。