see also 07000
现在有许多dependency injection框架可供选择。由于您使用的库,您常常被迫使用给定的依赖注入框架。然而,Common Service Locator library使库代码独立于注入框架。
学习他们所有的人足以决定使用哪个时间是不合理的。我不相信我们还没有达到一个阶段,我们可以谈论最好的依赖注入框架。那么,我应该问什么问题关于项目和我自己帮助决定最佳的依赖注入框架在给定的情况下使用?
知道为什么选择你当前使用的依赖注入框架并且如果你仍然对这个选择感到满意也将是有用的。
在比较依赖注入框架的样式时,是否还有一个有用的词汇表?
服务定位器库是否在现实生活中工作,或者你是否被迫在同一个项目中使用大量不同的依赖注入框架?
每个依赖注入框架代码的折射率是多么容易,例如像ReSharper这样的工具在给定的框架下工作得很好?
http://elegantcode.com/2009/01/07/ioc-libraries-compared/
几个问题:
>你需要多少主流支持?Spring可能是最大的一个。每个人都使用它或已经听说过,现在,这么多的信息。它也可能有最大数量的功能,但这意味着只有更多的学习。一个较小的容器,如Autofac可能很好,但你可能会遇到一个问题,你不会找到帮助。
>你是否方便w / Xml配置?每个IoC容器依赖于某种类型的配置和设置。Spring和团结是Xml重。
>这是永久的选择吗?如果你是在那些地方,你只有一个选择的一个镜头,这没关系。但是,如果你想在路上选择另一个解决方案,你可能不想要一个IoC,需要你的属性你的类(排序上面的问题的逆),因为你会讨厌自己,当你必须撕裂所有那东西。相比之下,wwapping out一些xml配置可能不是那么痛苦。
>你的商店是什么样的?我有麻烦投资几个开源选项只是因为“喘气!它不是微软!反应。如果你是一个直接的MS商店,使用Unity将是一个更容易的文化胜利。
个人注意:
我使用StructureMap与我链接的博客中提到的相同的原因。我认为Xml配置是一个巨大的痛苦来维护,特别是调试(见WCF)。我还没有尝试过Ninject,但基于他们的营销,它一定是超级!