使用第三方依赖注入容器与使用我自己构建的容器相比,有哪些好处?

3

我很久以前在看这个节目http://www.dnrtv.com/default.aspx?showNum=126时,构建了一个IoC容器,并使用它进行了小型示例,效果不错。

现在我正在启动一个项目中使用Unity作为依赖注入容器,并在之前的小型MVC网站中尝试过NInject

但是我现在在问自己,这些容器与我从节目中创建的容器相比有什么好处?我只能看到它们可以从配置文件中加载,而我也可以在我的容器中实现这一点。还有其他我所忽略的东西吗?我只想要有人告诉我,你必须使用这些容器,因为它们比你的容器更好,有1、2、3个原因。


1
将来有人维护你的代码时,他们会告诉你其中的区别。 - Hans Passant
2个回答

7

首先,这些容器在现实世界中被广泛使用,因此经过了充分的测试——至于您的情况我就不得而知了。

它们也有很好的文档说明,并且为许多开发人员所熟悉,因此如果在团队中工作,就无需向其他人介绍您的容器。

一些容器提供流畅的配置(即在代码中进行配置),这样可以在编译时与运行时相比给您类型安全。

然而,如果您的容器可用并且没有其他开发人员参与,那么为什么要改变呢?


4
其他IoC容器会有以下优势:
  • 更加成熟,很可能更少出现错误
  • 性能更好
  • 由他人维护
  • 具备更多功能以覆盖更多场景
  • 与其他框架(如MVC,WCF等)集成
  • 拥有讨论问题和应对的社区支持
如果您打算构建与Autofac,Ninject,Unity等已有产品竞争的东西,请将其作为您的产品。但如果您使用自己的IoC容器,您将远远落后,也无法获得以上提到的所有支持。注意保留HTML标记。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接