我正在使用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参数,我想团结与我通过它的上下文初始化存储库。另请注意,该代码IDataContext未在Unity中注册(我不需要3个实例IDataContext)。
RepositoryA
RepositoryB
IDataContext
截止到今天,他们已经添加了以下功能:
这是最近的一滴:
http://unity.codeplex.com/SourceControl/changeset/view/33899
在这里讨论:
http://unity.codeplex.com/Thread/View.aspx?ThreadId=66434
例:
container.Resolve<IFoo>(new ParameterOverrides<Foo> { { "name", "bar" }, { "address", 42 } });"