Unity Auto Registration
Unity Auto Registration расширяет возможности Unity контейнера, предоставляя fluent interface для автоматической регистрации типов по установленным правилам. Используя всего несколько строк кода вы можете отсканировать указанную сборку и зарегистрировать все соответствующие указанным правилам типы.
В качестве правил вы можете использовать предикаты (Predicate), лямбда выражения и вызовы методов. If хелпер предоставляет все типовые варианты для описания условий.
Ниже представлен пример конфигурации с помощью Unity Auto Registration:
- var container = new UnityContainer();
-
- container
- .ConfigureAutoRegistration()
- .LoadAssemblyFrom("Plugin.dll")
- .IncludeAllLoadedAssemblies()
- .ExcludeSystemAssemblies()
- .ExcludeAssemblies(a => a.GetName().FullName.Contains("Test"))
- .Include(If.Implements<ILogger>, Then.Register().UsingPerCallMode())
- .Include(If.ImplementsITypeName, Then.Register().WithTypeName())
- .Include(If.Implements<ICustomerRepository>, Then.Register().WithName("Sample"))
- .Include(If.Implements<IOrderRepository>,
- Then.Register().AsSingleInterfaceOfType().UsingPerCallMode())
- .Include(If.DecoratedWith<LoggerAttribute>,
- Then.Register()
- .AsInterface<IDisposable>()
- .WithTypeName()
- .UsingLifetime<MyLifetimeManager>())
- .Exclude(t => t.Name.Contains("Trace"))
- .ApplyAutoRegistration();
Ресурсы
Скачать стафф можно на http://autoregistration.codeplex.com/