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

相關問題