【发布时间】:2014-03-28 21:01:43
【问题描述】:
我正在开发一个使用 Unity 作为其 DI 容器的模块化应用程序。在启动期间,应用会向统一容器添加一个扩展(称为 MyUnityExtension)。
现在,我希望向应用程序添加一个新模块,该模块使用自己的统一容器(我假设是父容器的子容器),并且该子容器没有定义扩展。
如果我创建父容器的子容器,子容器是否也会继承 MyUnityExtension?我搜索并发现一些旧信息表明它不会但想确定。
-
Unity 有一个功能,即使类未注册,您也可以请求依赖于这些类的具体类型的实例,Unity 会弄清楚如何创建它们并为您提供实例(找到该信息here)。在我的新模块中,我希望 Unity 在进行任何解析时只检查我之前创建的子容器,而不考虑父容器。由于 Unity 自己进行解析(因为尚未注册该类),因此我看不到挂钩此过程的方法,而且我不知道当子容器存在时该过程如何更改。
我是 Unity 新手,所以不确定这是否可行。
【问题讨论】:
-
如果您不想使用父注册,为什么要使用子容器 (
CreateChildContainer()) 而不是仅使用新容器 (new UnityContainer())?您希望使用子容器有什么好处?
标签: c# unity-container