[修订版5/14/09:由于我的部署方案,我需要这个以Dotnet 2.0为目标]
我是Dependency Injection& 510C。
我发现有很多容器和库可以帮助这个过程。
使用这些库有哪些优缺点。你最喜欢的(dotnet)容器是什么?为什么?
如何为依赖注入滚动自己的容器呢?
谢谢,
彼得斯蒂芬斯答案 0 :(得分:3)
如果只需要依赖注入,可能AutoFac将是最佳选择,因为它很小,非常简单和合乎逻辑。不应该难以理解。
一旦你得到了,你觉得需要更成熟的产品(可以做其他事情,而不仅仅是DI)我建议你去看看温莎城堡,它非常强大,开箱即用,设计得非常好,并可定制。 如果你不喜欢这样,我听说过关于StrcutureMap的好消息。
答案 1 :(得分:2)
答案 2 :(得分:1)
我使用名为StructureMap的IOC工具:Structure Map 我发现该工具非常有用且易于实现。
答案 3 :(得分:1)
经过一些更多的研究:Ninject似乎是一个有用的选择。它支持Dotnet 2.0。它不需要大量的XML配置。
仍在努力找出为生产和单元测试环境提供不同DI配置的最佳实践。
答案 4 :(得分:1)
找到关于此主题的另一个主题here
答案 5 :(得分:0)
我喜欢MEF,主要是因为它在.NET 4.0中得到了很好的支持(因为MS宣布他们在Visual Studio 2010中将它用作DI的基础)。
使用起来也很简单,尤其是DI。处理DI和Add-In场景是该框架的主要目标,因此在这些情况下它非常简洁。
它也适用于IoC,但这不是它的主要目标。
答案 6 :(得分:0)
您可以在代码中使用Common Service Locator,它需要明确调用容器。这样,如果您对所选框架不满意,可以通过插入新框架来切换它。
答案 7 :(得分:0)
Spring.NET。如果您只想使用Spring的DI组件,那么您只需要使用它(并且您只需要引用这些DLL)。然后如果你想使用单元测试的东西,或Quartz的东西,或NHibernate的东西,你也可以添加这些DLL - 它是以模块化的方式构建的。所有不同的部分都有一致性,因为它们来自同一个框架。我认为这是一个非常好的框架,可以很好地补充.NET。