Estou usando o Unity da Microsoft para injeção de dependência e quero fazer algo assim:
IDataContext context = _unityContainer.Resolve<IDataContext>();
var repositoryA = _unityContainer.Resolve<IRepositoryA>(context); //Same instance of context
var repositoryB = _unityContainer.Resolve<IRepositoryB>(context); //Same instance of context
IDataContext context2 = _unityContainer.Resolve<IDataContext>(); //New instance
var repositoryA2 = _unityContainer.Resolve<IRepositoryA>(context2);
RepositoryA
e RepositoryB
ambos têm um construtor que leva um IDataContext
parâmetro, e eu quero que o Unity inicialize o repositório com o contexto que passei. Observe também que IDataContext
não está registrado no Unity (não quero 3 instâncias de IDataContext
).