2009-05-18 80 views
3

[2009年5月14日修订:由于我的部署方案,我需要这个目标为Dotnet 2.0]我应该在dotnet中使用哪种依赖注入技术?

我是新的依赖注入& IoC。

我发现有大量的容器和库来帮助这个过程。

使用这些库有什么优点和缺点。你最喜欢的(dotnet)容器是什么,为什么?

怎么样滚动我自己的容器依赖注入?

感谢,

彼得·斯蒂芬斯

回答

3

如果您只需要依赖注入,AutoFac可能是最好的选择,因为它很小,非常简单且合乎逻辑。不应该很难打扰。

一旦你明白了,你觉得需要更成熟的产品(可以做其他事情,而不仅仅是DI),我建议看看温莎城堡,这是非常强大的开箱即用,非常好设计和可定制的。 如果你不喜欢这样,我已经听说了关于StrcutureMap的好东西。

0

我喜欢MEF,主要是因为它是怎么回事,因为MS已经宣布,他们正在使用它的DI在基地得到很好的支持.NET 4.0( Visual Studio 2010)。

使用起来也很简单,尤其是对于DI。处理DI和Add-In场景是该框架的主要目标,因此在这种情况下它非常干净和简单。

它也适用于IoC,但这不是它的主要目标。

+2

我听说过有关MEF的好消息。我最近听了一个Hanselminutes播客,给了一个很好的概述:http://www.hanselminutes.com/default.aspx?showID=166 “与Glenn Block的托管扩展框架” – 2009-05-18 17:42:35

+0

我一直在使用它一段时间,而且效果很好。我特别喜欢它处理目录和注入的方式 - 如果你想要的话,你可以得到很多控制,但是也可以很容易地让它“工作”。我喜欢他们采用的方法,即使是我自己写的DI解决方案(http://plugintoolkit.net/),现在我已经放弃了MEF。 – 2009-05-18 17:45:39

+0

我不会使用MEF进行依赖注入,因为这不是它的目的。有更好的解决方案,其中许多可以与MEF一起工作。 – 2009-05-19 09:30:20

1

我使用一个名为StructureMap的IOC工具:Structure Map 我发现该工具非常有用并且易于实现。

0

你可以在你的代码,它需要显式调用容器使用Common Service Locator。这样,如果您对所选框架感到不满,您可以通过插入新框架来切换它。

1

经过一番更多的研究:Ninject似乎是一个有用的选择。它支持Dotnet 2.0。而且它不需要大量的XML配置。

仍试图找出生产和单元测试环境具有不同DI配置的最佳实践。

1

发现了关于此主题的另一条线索here

0

Spring.NET。如果你只想使用Spring的DI组件,这就是你需要使用的一切(你只需要引用那些DLL)。然后,如果你想使用单元测试的东西,Quartz的东西,或NHibernate的东西,你也可以添加这些DLL - 它是以模块化的方式构建的。所有不同的部分都有一致性,因为它们来自同一个框架。我认为这是一个很好的补充.NET的非常好的框架。

相关问题