Unity IoC版本5.8.x中曾经有一种方法UnityContainer.CreateChildContainer()
。但是,从5.9.x版本开始,它就消失了。这是否意味着整个子容器功能已被删除?还有其他方法可以实现这一目标吗?
答案 0 :(得分:2)
我确实假设您在定义var
时尝试使用UnityContainer
语法糖。由于版本5.9.0 IUnityContainer.CreateChildContainer
在UnityContainer
中使用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
和显式实现的接口方法的行为