【发布时间】:2011-05-08 13:46:40
【问题描述】:
我是 IoC 的新手,我正在玩 Unity。假设您有一个包含“n”个项目的解决方案,并且您想使用 Unity 来注册和解决依赖项。假设您的组合根在项目 a 中。假设您的解决方案中有以下项目。
一个 b C d
假设 a 依赖于 b 中的某些东西,b 依赖于 c 和 中的某些东西c 依赖于 d
中的某些东西我已经看到如何使用构造函数注入来解决 a => b 依赖关系,但我对 b's 如何依赖 c 无需访问在项目a中配置和创建的容器即可解决。
解决嵌套依赖的方法是什么? 是否有解决深度依赖关系的讨论/博客/示例?
【问题讨论】:
-
基于链接的可能重复,如果我在b中并且需要c的实例,我会要求容器解析实例吗?即:C c = container.resolve
();如果我在 C 中,我是否遵循相同的模式...这将要求所有项目都可以访问容器...这是一种理想的方法吗? -
不,只有您的最高级别项目(应用程序或网站)应该引用容器。较低层甚至不需要知道具体的依赖关系。换句话说,在 C 中,您永远不需要从 D 中解析类的具体实例。这有意义吗?
标签: c# dependency-injection unity-container ioc-container