om o Unity, como injeto uma dependência nomeada em um construto
Eu tenho oIRespository
registrado duas vezes (com nomes) no seguinte código:
// Setup the Client Repository
IOC.Container.RegisterType<ClientEntities>(new InjectionConstructor());
IOC.Container.RegisterType<IRepository, GenericRepository>
("Client", new InjectionConstructor(typeof(ClientEntities)));
// Setup the Customer Repository
IOC.Container.RegisterType<CustomerEntities>(new InjectionConstructor());
IOC.Container.RegisterType<IRepository, GenericRepository>
("Customer", new InjectionConstructor(typeof(CustomerEntities)));
IOC.Container.RegisterType<IClientModel, ClientModel>();
IOC.Container.RegisterType<ICustomerModel, CustomerModel>();
Mas quando eu quiser resolver isso (para usar oIRepository
) Eu tenho que fazer uma resolução manual como esta:
public ClientModel(IUnityContainer container)
{
this.dataAccess = container.Resolve<IRepository>(Client);
.....
}
O que eu gostaria de fazer é resolvê-lo no construtor (assim comoIUnityContainer
). Eu preciso de alguma maneira de dizer qual tipo nomeado resolve
Algo assim: (NOTA: Código não real)
public ClientModel([NamedDependancy("Client")] IRepository dataAccess)
{
this.dataAccess = dataAccess;
.....
}
Existe uma maneira de fazer meu código falso funcionar?