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