Pull to refresh

Unity Auto Registration

Reading time2 min
Views2K

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/
Tags:
Hubs:
Total votes 35: ↑21 and ↓14+7
Comments9

Articles