Unity Auto Registration

    Unity Auto Registration


    Unity Auto Registration расширяет возможности Unity контейнера, предоставляя fluent interface для автоматической регистрации типов по установленным правилам. Используя всего несколько строк кода вы можете отсканировать указанную сборку и зарегистрировать все соответствующие указанным правилам типы.


    В качестве правил вы можете использовать предикаты (Predicate), лямбда выражения и вызовы методов. If хелпер предоставляет все типовые варианты для описания условий.

    Ниже представлен пример конфигурации с помощью Unity Auto Registration:

    1. var container = new UnityContainer();
    2.  
    3.       container
    4.         .ConfigureAutoRegistration()
    5.         .LoadAssemblyFrom("Plugin.dll")
    6.         .IncludeAllLoadedAssemblies()
    7.         .ExcludeSystemAssemblies()
    8.         .ExcludeAssemblies(a => a.GetName().FullName.Contains("Test"))
    9.         .Include(If.Implements<ILogger>, Then.Register().UsingPerCallMode())
    10.         .Include(If.ImplementsITypeName, Then.Register().WithTypeName())
    11.         .Include(If.Implements<ICustomerRepository>, Then.Register().WithName("Sample"))
    12.         .Include(If.Implements<IOrderRepository>,
    13.              Then.Register().AsSingleInterfaceOfType().UsingPerCallMode())
    14.         .Include(If.DecoratedWith<LoggerAttribute>,
    15.              Then.Register()
    16.                 .AsInterface<IDisposable>()
    17.                 .WithTypeName()
    18.                 .UsingLifetime<MyLifetimeManager>())
    19.         .Exclude(t => t.Name.Contains("Trace"))
    20.         .ApplyAutoRegistration();

    Ресурсы


    Скачать стафф можно на http://autoregistration.codeplex.com/

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 9

      0
      Хотелось бы видеть детальный use case всего этого.
        0
        Если бы не было MVCContrib, то этим можно, например, регистрировать контроллеры в MVC. Вполне себе Use case.
          0
          Расскажите пожалуйста как вам помогает MVCContrib в регистрации контроллеров?
            0
            IWindsorContainer container = new WindsorContainer();
            ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container));
            container.RegisterControllers(typeof(HomeController).Assembly);

            Как-то вот так. У них там есть фабрика и для Unity тоже.
              0
              Да, фабрика для Юнити есть, но она автоматом не регистрирует контроллеры. На сколько я вижу Unity Auto Registration может помочь в том случае, если контроллеры подгружаются из Reference библиотек. В основном применять такую штуку можно в построении CMS (вообщем там, где нужна плагинная архитектура).
        0
        Наверное удобно для больших проектов.
        В большинстве случаев можно обойтись и без этого.
          0
          Есть смутное подозрение, что Plugin.dll содержит какого-то безобразно спроектированного монстра…
            –1
            fluent interface — гибкий интерфейс
            стафф — имеет негативный оттенок в слэнге.
            Будь попроще.
            Я вот что заметил люди которые не могут выразить ясно свои мысли пишут такой же «качественный» код.
            Заметьте я не вообще не употребляю русского в общении, но даже мне чесно говоря ваш пост режет ухо.
              0
              Ничто человеческое мне не чуждо.

              Заметно. Вам бы лучше на GDN троллить.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое