代码之家  ›  专栏  ›  技术社区  ›  Peter Stephens

我应该在dotnet中使用哪种依赖注入技术?

  •  3
  • Peter Stephens  · 技术社区  · 16 年前

    [修订版5/14/09:由于我的部署方案,我需要它以dotnet 2.0为目标]

    我刚接触依赖注入和IOC。

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

    使用这些库的利弊是什么?您最喜欢的(dotnet)容器是什么?为什么?

    如何滚动自己的容器进行依赖项注入?

    谢谢,

    史提芬斯

    8 回复  |  直到 12 年前
        1
  •  3
  •   Krzysztof Kozmic    16 年前

    如果您只需要依赖注入,那么autopac可能是最好的选择,因为它很小,很简单而且逻辑性很强。不应该太难摸索。

    一旦你得到了,你觉得需要更成熟的产品(这可以做其他事情,而不仅仅是DI),我建议你看看温莎城堡,它是相当强大的开箱,非常好的设计,可定制。 如果你不喜欢的话,我听说过strcuturemap的好消息。

        2
  •  2
  •   treehouse    16 年前
        3
  •  1
  •   CSharpAtl    16 年前

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

        4
  •  1
  •   Peter Stephens    16 年前

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

    仍在尝试为生产和单元测试环境提供不同DI配置的最佳实践。

        5
  •  1
  •   Community CDub    8 年前

    在此主题上找到另一个线程 here

        6
  •  0
  •   Reed Copsey    16 年前

    我喜欢 MEF 这主要是因为它在.NET 4.0中得到了很好的支持(因为微软已经宣布将其用于Visual Studio 2010中的DI基础)。

    它也很容易使用,特别是对于DI。处理DI和外接程序场景是该框架的主要目标,因此在这些情况下非常干净和简单。

    它也适用于国际奥委会,但这不是它的主要目标。

        7
  •  0
  •   bbmud    16 年前

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

        8
  •  0
  •   Richard    12 年前

    弹簧网。如果您只想使用Spring的DI组件,那么这就是您需要使用的全部内容(并且您只需要引用这些DLL)。然后,如果您想使用单元测试材料,或者石英材料,或者NHiberinate材料,您也可以添加这些DLL——它是以模块化的方式构建的。所有不同的部分都具有一致性,因为它们来自同一个框架。我认为它是一个非常好的框架,可以很好地补充.NET。

    推荐文章