我应该如何将依赖项传递给我的 Class?

How should I pass Dependencies to my Class?

我有一个 class 依赖于通过 Autofac 注入的大量依赖项。 这是一个例子:

public MyService(
        IService1 service1,
        IService2 service2,
        ...)
        {
          _service1 = service1;
          _service2 = service2
        }

我需要传递大约 10 个依赖项。我们现在实现了 SonarQube,它抱怨很多构造函数参数。

是否有另一种“better/preferred”方式来传递这些依赖关系以使 SonarQube 快乐?

虽然检查您的依赖项布局以确保您的 'tree' 依赖项尽可能简单总是好的,但有时您只需要传入相当多的依赖项。

为了帮助简化这一点,您可以考虑 Aggregate Services 包。

它将允许您定义一个接口,其中包含您的依赖项,然后注入该接口,而无需自己定义整个其他 class。