我有一个案例,我需要为同一个接口实例化两个不同的实现,这两个实现都在同一个类中使用。
public AutoMapperRegisterFactory(IRegisterAutoMapper registerAutoMapper , IRegisterAutoMapper registerAutoMapperMobile)
{
m_RegisterAutoMapper = registerAutoMapper;
}
我如何告诉团结第一个IRegisterAutoMapper
应该是RegisterAutoMapper
类型,第二个类型RegisterAutoMapperMobile
?
答案 0 :(得分:1)
你可以使用IRegisterAutoMapper的多个命名映射和一个InjectionConstructor来告诉Unity每个参数使用哪些特定的映射。
IUnityContainer container = new UnityContainer()
.RegisterType<IRegisterAutoMapper, RegisterAutoMapper>() //default
.RegisterType<IRegisterAutoMapper, MobileRegisterAutoMapper>("Mobile")
.RegisterType<AutoMapperRegisterFactory>(
new InjectionConstructor(
typeof(IRegisterAutoMapper),
new ResolvedParameter<IRegisterAutoMapper>("Mobile")));