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

最佳答案

我确实假设您在定义 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()){...}

不详这通常是 var 和显式实现的接口(interface)方法的行为

关于c# - Unity 5.9.x 中缺少 CreateChildContainer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54560522/

10-11 04:38