依赖注入 - 访问同一层中的类

时间:2015-04-27 14:51:28

标签: .net dependency-injection

如果两个类都具有通过构造函数注入的依赖项,那么一个类如何在同一层中使用另一个类?这两者都不能被视为一个贯穿各领域的问题。例如:

第1层:

RepoA,RepoB

第2层:

Class1取决于RepoA

Class2依赖于RepoB,但也需要调用Class1中的方法

第3层:

Controller1依赖于Class1,Class2

这是否存在根本性缺陷,并且不存在Class2需要Class1的情况?或者Class2是否需要注入RepoA,以便它可以在需要时实例化Class1?

此外,可以将Class1注入Class2,但这必须是错误的方法。将类注入同一层(?)中的另一个类可能是有意义的。

2 个答案:

答案 0 :(得分:1)

  

将一个类注入同一层中的另一个类可能是有意义的。

为什么呢?这似乎是我的解决方案......如果Class2依赖于RepoBClass1,那么它应该通过在构造函数中声明这些依赖项来显示它们,以便它们可以被注入。为什么它们来自同一层并不重要?

答案 1 :(得分:0)

如果您遵循洋葱架构,则允许[创建依赖关系]同一层和内层的任何内容,但永远不会更高。话虽如此,您可以有效地将Class1作为依赖项添加到Class2。

就我自己的2美分而言,如果这是一个需要更常见的实现,请考虑(如果有意义的话)将其添加到您的核心合同中。然后Class2可以访问IClass1.Method。