Я використовую Unity від Microsoft для введення залежностей, і я хочу зробити щось подібне:
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
).