Unity 5.9.x中缺少CreateChildContainer

时间:2019-02-06 18:44:41

标签: c# unity-container ioc-container

Unity IoC版本5.8.x中曾经有一种方法UnityContainer.CreateChildContainer()。但是,从5.9.x版本开始,它就消失了。这是否意味着整个子容器功能已被删除?还有其他方法可以实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

我确实假设您在定义var时尝试使用UnityContainer语法糖。由于版本5.9.0 IUnityContainer.CreateChildContainerUnityContainer中使用var进行了明确的实现,可能会给人留下CreateChildContainer以及任何其他明确实现的方法都不再存在的印象。

//Not possible with unity>=5.9.0, this way uc has access to class methods
var uc = new UnityContainer();
using(var child = uc.CreateChildContainer()){...}

//Possible with unity>=5.9.0, this way uc has access to interface methods
IUnityContainer uc = new UnityContainer();
using(var child = uc.CreateChildContainer()){...}

n.b。这通常是var和显式实现的接口方法的行为