jpa*_*ram 9 c# dependency-injection ioc-container unity-container
我是IoC的新手,我正在玩Unity.假设你有'n'项目的解决方案,你想使用Unity来注册和解决依赖关系.比方说,你的作文根是在项目一个.假设您在解决方案中有以下项目.
A B C D
让我们说a取决于b中的某些东西,b取决于c和c中的某些东西取决于d中的某些东西
我已经看到你如何使用构造函数注入来解决a => b依赖关系但我仍然坚持如何解决b对c 的依赖性而无需访问在项目a中配置和创建的容器.
解决嵌套依赖项的方法是什么?是否存在解决深度依赖关系的讨论/博客/示例?
组合根应该创建并提供所有依赖项,包括嵌套的依赖项,因此它需要引用所有相关的程序集(除非您使用反射提供它们).
例如,您通常在创建之前创建B(提供其依赖项C)的实例A.如果你" 手工 " 做到了,它看起来像这样:
C c = new C();
B b = new B(c);
A a = new A(b);
Run Code Online (Sandbox Code Playgroud)
只要您注册所有适当的类型,您的依赖注入框架将为您解决它们.
有关该主题的精彩文章,请参阅MiškoHevery的" 依赖注入神话:参考传递".