为什么 MEF 不是 DI/IoC 容器? [英] Why exactly isn't MEF a DI/IoC container?

查看:29
本文介绍了为什么 MEF 不是 DI/IoC 容器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

博客圈和微软自己都说 MEF 不是另一个 IoC 容器.

It's been said on the blogosphere and by Microsoft themselves that MEF isn't another IoC container.

好的……但是为什么呢?这对我来说似乎是一样的.也许它不如 Unity 或 Castle Windsor,但它仍然符合定义,不是吗?

OK...but why? It seems the same to me. Maybe it's not as good as Unity or Castle Windsor, but it still fits the definition, doesn't it?

为什么 MEF 不是像 Unity 或 Castle Windsor 那样的 IoC 容器?

Why isn't MEF an IoC Container like Unity or Castle Windsor?

推荐答案

MEF有潜力,但作为DI容器,它缺乏:

MEF has potential, but as a DI container, it lacks:

  1. 代码即配置
  2. 自动注册
  3. XML 配置(对我来说不是很重要)
  4. 自定义生命周期
  5. 拦截

这些东西很重要.

对于生活方式,它缺乏:

For Lifestyle it lacks:

  1. 每图
  2. Web 请求上下文
  3. 线程上下文
  4. 会话上下文
  5. 合并
  6. 作用域
  7. 自定义参考

参考资料:- Mark Seemann 的书.NET 中的依赖注入"

References: - Mark Seemann's book "Dependency Injection in .NET"

这篇关于为什么 MEF 不是 DI/IoC 容器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆