使用Unity实例化同一个类中相同接口的两个对象

时间:2013-07-10 12:18:56

标签: c# unity-container

我有一个案例,我需要为同一个接口实例化两个不同的实现,这两个实现都在同一个类中使用。

public AutoMapperRegisterFactory(IRegisterAutoMapper registerAutoMapper , IRegisterAutoMapper registerAutoMapperMobile)
{
   m_RegisterAutoMapper = registerAutoMapper;
}

我如何告诉团结第一个IRegisterAutoMapper应该是RegisterAutoMapper类型,第二个类型RegisterAutoMapperMobile

1 个答案:

答案 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")));