9

我正在寻找Unity的一些基本示例/解释。我很难理解这个概念。我对注入模式有基本的了解,因为Unity似乎与它紧密相关。我感谢任何帮助。什么是Microsoft Unity?

回答

11

团结是several DI Containers for .NET之一。当有问题的类型遵循Dependency Inversion Principle时,它可用于组成对象图。

做到这一点的最简单的方法是使用构造函数注入模式:

public class Foo : IFoo 
{ 
    private readonly IBar bar; 

    public Foo(IBar bar) 
    { 
     if (bar == null) 
      throw new ArgumentNullException("bar"); 

     this.bar = bar; 
    } 

    // Use this.bar for something interesting in the class... 
} 

现在,您可以在应用程序的Composition Root配置统一:

container.RegisterType<IFoo, Foo>(); 
container.RegisterType<IBar, Bar>(); 

的是注册阶段的Register Resolve Release pattern。在解决container自动线无需进一步配置对象图:

var foo = container.Resolve<IFoo>(); 

这自动地工作,因为所涉及的类的静态结构包括的所有信息的容器需要构成对象图形。

+10

为了增加马克的回答(希望他不介意),如果你想了解更多关于依赖注入,Mark自己写了一本非常好的书,名为“.NET中的依赖注入”。 http://www.manning.com/seemann/ – Phill

+1

@phill:请不要这样做。马克讨厌人们提到他的书时:-) – Steven

+0

:(对不起,不会再这样做。 – Phill

相关问题