Я использую 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
).