Что такое Microsoft Unity? - PullRequest
       60

Что такое Microsoft Unity?

9 голосов
/ 22 ноября 2011

Я ищу несколько основных примеров / объяснений Unity. Мне трудно понять концепцию. У меня есть базовое понимание паттерна инъекций, так как кажется, что Unity тесно связана с ним. Я ценю любую помощь.

Ответы [ 3 ]

11 голосов
/ 22 ноября 2011

Unity - это один из нескольких контейнеров DI для .NET .Его можно использовать для составления графов объектов, когда рассматриваемые типы следуют принципу обращения зависимостей .

Самый простой способ сделать это - использовать Конструктор Injection pattern:

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

Теперь вы можете настроить Unity в корне композиции приложения :

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

Это фаза Register фазы Регистрация шаблона разрешения разрешения .В фазе Resolve container будет Auto-wire граф объектов без дальнейшей настройки:

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

Это работает автоматически, потому что статическая структура классоввовлекает всю информацию, необходимую контейнеру для построения графа объекта.

0 голосов
/ 22 ноября 2011

Проверьте здесь: Microsoft Unity 2.0 - апрель 2010

...