我正在使用微软的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
实例)。
Foo(string name, int address) { ... }
- aduncontainer.Resolve<IFoo>(new ParameterOverrides { { "name", "bar" }, { "address", 42 } });
- mrfelis