Я использую Microsoft Unity для инъекции зависимостей, и я хочу сделать что-то вроде этого:
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
и RepositoryB
оба имеют конструктор, который принимает параметр IDataContext
, и я хочу, чтобы Unity инициализировал репозиторий с помощью контекста, который я передал ему. Также обратите внимание, что IDataContext
не зарегистрировано в Unity (я не хочу 3 экземпляра IDataContext
).