我正在使用微软的 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
实例)。