2017-02-28 59 views
1

如何註冊多個服務類到Unity容器? 我正在使用Unity.WebApi;我的UnityConfig代碼如下:如何向Unity Container註冊多個服務類?

var container = Container.Instance; 

container.RegisterType<ILogger, Log4NetLogger>(); 
container.RegisterType<NHibernateFactory, NHibernateFactory>(); 
container.RegisterType<INhibernateUnitOfWork, NHUnitOfWork>(); 
container.RegisterType<IProductService, ProductService>(); 

container.RegisterType(typeof(IRepository<,>), typeof(NHRepository<,>)); 

GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container); 

在上面的代碼中,我註冊了產品服務。就像那樣我想註冊很多服務類和接口。如果我們手動添加,那麼我們必須添加很多行來註冊這些類。

是否有任何解決方案來動態添加?

回答

0

爲您服務案例..

container.RegisterTypes(
AllClasses.FromLoadedAssemblies().Where(t => t.Name.EndsWith("Service")), 
WithMappings.FromMatchingInterface, 
WithName.Default, 
//this is important. Choose the one that suits you 
WithLifetime.Hierarchical);