1

我知道 .net 中有许多 IoC 框架(它们是:Ninject、Unity、Castle Windsor、Structure Map)它们也用于相同的目标 - 解决依赖关系。但我不明白在哪些情况下应该使用某些框架!它们几乎相似。谁能简单解释一下主要区别?

4

3 回答 3

3

这取决于您的需求。一些容器非常成熟或者有一个很大的社区。其他的功能丰富或非常快。这一切都取决于您需要什么,但问题是您只有在使用 DI 和 DI 容器完成一两个项目时才知道这一点。而且,当您的架构发生变化时,对容器的要求也会发生变化。

所以无论你选择什么容器,都要准备好改变你的容器。这意味着,坚持依赖注入模式并防止自己让应用程序代码直接依赖于容器(称为服务定位器的模式)。

于 2012-09-13T15:09:54.073 回答
2

每一个都有致命的缺陷

更严肃地说,它们肯定在本质上做同样的事情,但在实现细节、约定、性能、辅助功能和建议的用例上有所不同。

我不认为你真的应该为挑选IoC 容器而费劲。坚持使用您习惯的并继续使用您的核心功能。

于 2012-09-13T09:49:49.910 回答
1

DI/IOC 或任何你想称它为目的的手段——而不是目的本身。找到一个你喜欢的,它可以满足你的一切需求并使用它(直到你被告知使用其他东西)。

我基于 StructureMap 推出了自己的产品,并且可能比实际使用任何其他产品学到的更多。

于 2012-09-13T09:55:42.310 回答