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