每个类库的dependency injection容器
所以,这是我第一次处理DI,如果我误解了整个DI,请纠正我。
这些是我的一些项目:
- Web应用程序/ Web API项目 – 取决于服务类+注入Automapper(仅适用于当前项目的配置)
- 服务(类库) – 取决于数据类+注入自动映射(配置仅适用于当前项目)
- 数据(类库)
我的目的是让每个项目都有自己的DI容器(Unity DI说)。 我不确定每个项目都有自己的DI容器。
我已经阅读了一些文章,表明它无法完成(不确定我是否正确解释它们)但我不确定为什么?
如果无法完成,任何人都可以解释它,我如何实现这一点,我不想在应用层DI中的数据层中注册类。
如果每个项目都有自己的DI,那么在注册IMapper作为实例时它会覆盖其他层的IMapper吗?
我的目的是让每个项目都有自己的DI容器(Unity DI说)。 我不确定每个项目都有自己的DI容器。
如此处所述,您应该编写所有对象图:
尽可能接近应用程序的入口点。
这个地方叫做组合根 :
组合根是应用程序中的(优选地)唯一位置,其中模块被组合在一起。
换句话说,您应该使用DI容器并配置应用程序依赖项的唯一位置是启动项目。 所有其他项目应该忘记容器,并且应该纯粹应用构造函数注入 。
我已经阅读了一些文章,表明它无法完成
它可以做到,但你不应该这样做。
如果每个项目都有自己的DI,那么在注册IMapper作为实例时它会覆盖其他层的IMapper吗?
如果应用“ 合成根”模式,则此问题会消失。 在Composition Root中,您可以完全控制哪个组件获得哪个依赖项。
专业提示 :阅读本书 。
上述就是C#学习教程:每个类库的dependency injection容器分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/998166.html