每个类库的dependency injection容器

所以,这是我第一次处理DI,如果我误解了整个DI,请纠正我。

这些是我的一些项目:

  1. Web应用程序/ Web API项目 – 取决于服务类+注入Automapper(仅适用于当前项目的配置)
  2. 服务(类库) – 取决于数据类+注入自动映射(配置仅适用于当前项目)
  3. 数据(类库)

我的目的是让每个项目都有自己的DI容器(Unity DI说)。 我不确定每个项目都有自己的DI容器。

我已经阅读了一些文章,表明它无法完成(不确定我是否正确解释它们)但我不确定为什么?

如果无法完成,任何人都可以解释它,我如何实现这一点,我不想在应用层DI中的数据层中注册类。

如果每个项目都有自己的DI,那么在注册IMapper作为实例时它会覆盖其他层的IMapper吗?

我的目的是让每个项目都有自己的DI容器(Unity DI说)。 我不确定每个项目都有自己的DI容器。

如此处所述,您应该编写所有对象图:

尽可能接近应用程序的入口点。

这个地方叫做组合根

组合根是应用程序中的(优选地)唯一位置,其中模块被组合在一起。

换句话说,您应该使用DI容器并配置应用程序依赖项的唯一位置是启动项目。 所有其他项目应该忘记容器,并且应该纯粹应用构造函数注入

我已经阅读了一些文章,表明它无法完成

它可以做到,但你不应该这样做。

如果每个项目都有自己的DI,那么在注册IMapper作为实例时它会覆盖其他层的IMapper吗?

如果应用“ 合成根”模式,则此问题会消失。 在Composition Root中,您可以完全控制哪个组件获得哪个依赖项。

专业提示 :阅读本书 。