小编典典

我可以将构造函数参数传递给Unity的Resolve()方法吗?

c#

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


阅读 292

收藏
2020-05-19

共1个答案

小编典典

截止到今天,他们已经添加了以下功能:

这是最近的一滴:

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 } });"
2020-05-19