如何选择DI容器?

bev*_*qua 8 dependency-injection asp.net-mvc-3

可能重复:
主要的C#DI/IoC框架如何比较?

有那么多的DI容器,我觉得有点迷茫.我是DI模式的新手.

我正在阅读.NET中的Dependency Injection这本书,我发现DI在改进代码库方面非常有用,使它松散耦合并且更易于测试.

我现在想为我的虚拟项目引入一个DI容器,但是有很多可供选择.

我怎么选择Castle Windsor,Unity,StructureMap,Spring.NET,Autofac,Ninject,Funq,LinFu等等?

我想一个连贯的看法就是"选择一个"并开始使用它(因为我认为它们很容易互换,特别是在早期阶段),但我想做出更明智的决定.

icy*_*com 5

这就像买车一样.你可能会喜欢丰田,但它只是2.5L发动机.你可能会喜欢法拉利,但它太红了.你可能会喜欢马自达,但你的老板不允许你开车.你可能会喜欢悍马,但是你的同事会嘲笑你.根据您的口味混合制造商,对于某些人或在某个不同的时刻总是会缺少某些东西.

我的看法是 - 首先,DI通常比没有DI更好.挑选任何东西,你会变得更好.我会选择一些:

  • 社区有很好的支持(所以你可以得到答案)
  • 有一个很好的支持公司(所以你不能在它破灭时重写你的代码)
  • 感觉很好(所以你不要在孩子面前发誓,不要冷静)
  • 对于该项目来说,这不是一种过度杀伤力
  • 不只是DI,而且提供了一个生态系统,可以减少你花在你知道自己可以做的任务上的时间,而不是现在 - 然后你可以专注于重要的事情
  • 被许多人使用(所以你知道很多部分也在现实生活中测试并且填充了bug)
  • 是不是5岁(例如文档说它在Windows 98或其他东西上支持)

我的2美分 - http://www.springframework.net/.我的意思是,他们的文档内容页面长达20页......

或者您可能想要查看类似问题的更多答案: