2009-12-02 158 views
24

我正在使用Unity IoC容器。这不是我做出的决定,它只是随着Prism而来,而我刚刚坚持下去。我从未使用任何其他IoC框架,我必须承认我对Unity非常满意。然而,满意度可能来自无知,因为我不知道其他框架提供了什么。为什么我不应该使用Unity?

我一直听说我不应该使用Unity IoC容器。人们说,“用Castle,nInject或StructureMap来代替”,但我仍然没有听到任何具体的论点或例子,为什么我应该使用不同的框架。那么,为什么我不应该使用Unity?或者,也许我应该?

+3

接受的答案这个stackoverflow问题(http://stackoverflow.com/questions/411660/enterprise-library-unity-vs-other-ioc-containers)成为一个非常详细的博客文章(在这里,http:// elegantcode.com/2009/01/07/ioc-libraries-compared/)可能会有所帮助。 – 2009-12-04 21:32:36

+0

的确非常有用!在寻找有关该主题的现有问题时,我不知何故错过了这个问题。谢谢! – stiank81 2009-12-05 22:23:51

回答

14

这些容器往往是口味,比什么都重要。 Ninject有一个非常流畅的界面来配置它,但是有些人喜欢Unity能够通过配置(我认为是受虐狂者)以及代码进行配置。

我和你一样,在采用棱镜时有这些问题,所以我经历了用Ninject和Autofac替换Unity的练习。在性能或功能方面,我没有发现任何与Unity相关的理由。两者都有一些好的东西,但他们都做了基本相同的事情,并做得很好。

我会看每个的功能,风格和语法,并决定你最喜欢哪一个。这真的是唯一的区别...它如何感觉。通常存在一些核心功能差异,但您需要这些功能的可能性非常小。

发布有关您的决定的更新...我一直对人们的真实世界发现与热衷用户提倡的内容感兴趣。

+4

已经做了一些研究,但没有找到任何好的理由不使用Unity现在。所以 - 结论是“如果它没有被破坏 - 不要修复它” - 我会留在Unity。无论如何,如果危机出现,可以改变它。如果我要改变,我会选择使用StructureMap。感谢您的回复! – stiank81 2009-12-06 20:38:39

12

使用Unity的一个原因是如果您需要在中等信任环境中工作。从我发现的情况来看,如果你的代码没有完全信任,Unity看起来更容易运行。我使用了几个IoC容器,并在需要中等信任时使用Unity。

+2

+1 - 感谢您的高举! – 2010-03-04 04:20:16

+0

看起来不再支持Unity的部分信任。 http://msdn.microsoft.com/en-us/library/dd203232.aspx – 2013-09-28 16:07:33

相关问题