我正在使用 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
)。