当有多个项目时,在哪里注册依赖注入?

Where to register dependency injection when have multiple projects?

我应该注册 DI。

    private static void Initialize(ContainerBuilder builder)
    {
        builder.RegisterType<Logger>().As<ILogger>().SingleInstance();
        //...
    }

这对我来说很清楚。 但是如果我的解决方案中有 17 个项目怎么办? 项目是相关的,一个项目是网络项目,一些项目是提供者,一些项目是图书馆,核心项目等。 例如:

in Project1, I have class_A1 and this class should inject Class_A2 from same project
in Project2, I have class_B1 and this class should inject Class_B2 from same project
in Project3, I have class_C1 and this class should inject Class_C2 from same project
...
in Project17, I have class_K1 and this class should inject Class_K2 from same project

当然我有一些复杂的场景,比如从 Project3 注入 class 到 Project14 等等
我应该在每个项目中单独注册吗?或者有更好的方法?
感谢您的帮助。

如果所有项目都是同一解决方案的一部分,则无需在每个项目中都注册类型。通常在任何解决方案中,您都会有一个主项目,我希望它能使用您解决方案中的所有其他项目,并且您可以在主项目中添加您的注册。

但在某些解决方案中,您可能有主项目未直接引用的项目,如果是这种情况,那么恕我直言,您有两种选择

  1. 您可以添加其他项目作为对您的主项目的引用 并在您的主项目中注册类型或
  2. 您可以创建一个新的 项目,比如说,基础设施并添加所有项目作为参考 到基础设施项目并注册类型然后只是 添加基础设施作为对您的主要项目的参考并调用 负责主项目类型注册的方法。