【发布时间】:2020-07-13 16:19:41
【问题描述】:
我对 .NET Core 中的依赖注入感到困惑,因为我有许多相互耦合的依赖项。我有一个类MyClass 实现了一个接口IMyClass 如下:
public class MyClass : IMyClass
{
private IClass classA;
private IClass classB;
public MyClass (ClassA classA, ClassB classB)
{
this.classA = classA;
this.classB = classB;
}
....
}
ClassA 和 ClassB 类是接口 IClass 的实现,如下所示:
public class ClassA : IClass
{
public ClassA (many other DI)
{
}
}
public class ClassB : IClass
{
private IClass baseClass;
public ClassB (IClass baseClass, ...)
{
this.baseClass = baseClass;
....
}
}
在我的启动文件中,我应该如何注册我的依赖项。我尝试了以下方法,但不起作用:
services.AddSingleton<ClassA>();
services.AddSingleton<IMyClass, MyClass>();
有人能解释一下这里的问题和解决方案吗?
【问题讨论】:
-
你也要注册ClassB。
-
我们需要最后一块拼图:如何使用 ClassA 和 ClassB?您是否将它们都用作依赖项?你想只使用 ClassB 作为 ClassA 的装饰器吗?
-
这也不起作用
-
我们两个都想用
标签: c# asp.net-core dependency-injection