【发布时间】:2022-06-15 15:04:42
【问题描述】:
当我尝试在同一个项目中添加依赖于 Scoped 的类时,已经在同一个项目中添加了另一个类,它无法在启动时加载应用程序。
public class C1: I1 {
public C1(I2 c) {
}
}
services.TryAddScoped<I1, C1>();
services.TryAddScoped<I2, C2>();
当C1 和C2 在同一个项目中时,加载失败,当C1 和C2 在不同的项目中时,它正在启动应用程序。其中 C1 有 C2 作为依赖项
是故意设计的还是我做错了什么或者......?
更新
我有带部门的 PaymentComponent 类
DI 依赖列表的类
PaymentComponent 项目
当项目“PaymentHelper”中的类在“PaymentComponent”项目 DI 中不起作用时,错误是由于这些类之一无法解析 PaymentComponent。当我从 PaymentComponent 类中分离出来并移动创建“PaymentHelper”时,如图所示。我刚刚在新项目中移动了课程。
【问题讨论】:
-
所有 ASP.NET Core 项目都使用依赖于同一项目中其他类的类,因此您声称的内容显然是错误的。控制器可能依赖于依赖 ILogger 的服务。发布演示问题和实际完整错误的实际代码
-
错误是因为I2无法解析C1。当我在不同的项目中移动 I2 时,它不会产生错误
标签: .net asp.net-core