在Unity 5.9.x缺少CreateChildContainer

问题描述 投票:3回答:1

曾经有在Unity的IoC版本5.8.x.的方法UnityContainer.CreateChildContainer()但是它已经版本5.9.x.消散这是否意味着整个子容器功能移除?是否有任何其他的方式如何实现这一目标?

c# unity-container ioc-container
1个回答
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()){...}

注:这通常是var并明确实现的接口方法的行为

© www.soinside.com 2019 - 2024. All rights reserved.