Pull to refresh

Unity Auto Registration

.NET *

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: UnityIoCDIdependency injectioninversion of controlmicrosoft.NETenterprise library
Hubs: .NET
Total votes 35: ↑21 and ↓14 +7
Comments 9
Comments Comments 9

Popular right now