9

Poszukuję podstawowych przykładów/wyjaśnień Jedności. Ciężko mi zrozumieć tę koncepcję. Mam podstawowe zrozumienie wzoru Injection, ponieważ wydaje się, że Unity jest z nim ściśle związana. Doceniam każdą pomoc.Co to jest Microsoft Unity?

Odpowiedz

11

Unity jest jednym z several DI Containers for .NET. Może być używany do komponowania wykresów obiektów, gdy typy te są zgodne z Dependency Inversion Principle.

Najprostszym sposobem na to jest użycie Konstruktor wtrysku wzoru:

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... 
} 

Teraz można skonfigurować jedność w aplikacji Composition Root:

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

The jest Rejestracja faza Register Resolve Release pattern. W Resolve fazie container będzie Auto-wire wykres obiektu bez dalszej konfiguracji:

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

to automatycznie działa, ponieważ statyczna struktura klas zaangażowanych zawiera wszystkie informacje pojemnik musi komponować obiektu wykres.

+10

Aby dodać odpowiedź Marka (mam nadzieję, że nie przeszkadza), jeśli chcesz dowiedzieć się więcej o Dependency Injection, jest naprawdę dobra książka "Dependency Injection in .NET" napisana przez samego Marka. http://www.manning.com/seemann/ – Phill

+1

@phill: proszę nie rób tego. Mark nienawidzi tego, gdy ludzie odnoszą się do jego książki :-) – Steven

+0

:(Przepraszam, nie zrobię tego ponownie. – Phill