博客圈和微软自己都说 MEF 不是另一个 IoC 容器。
好吧……但是为什么呢?对我来说似乎是一样的。也许它不如 Unity 或Castle Windsor好,但它仍然符合定义,不是吗?
为什么 MEF 不像 Unity 或 Castle Windsor 那样是 IoC 容器?
博客圈和微软自己都说 MEF 不是另一个 IoC 容器。
好吧……但是为什么呢?对我来说似乎是一样的。也许它不如 Unity 或Castle Windsor好,但它仍然符合定义,不是吗?
为什么 MEF 不像 Unity 或 Castle Windsor 那样是 IoC 容器?
MEF 有潜力,但作为 DI 容器,它缺乏:
这些东西非常重要。
对于生活方式,它缺乏:
参考: - Mark Seemann 的书“.NET 中的依赖注入”
在我的世界里,DI基于三个维度,对象组合、生命周期管理和拦截。这是其他成熟的 DI 容器,如 Unity、Castle Windsor 和 Ninject 所促进的。MEF 仅支持一维,即对象组合。它做得很好,但 MEF 不支持其余两个维度。