2017-02-28 66 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);