【发布时间】:2020-03-19 14:51:15
【问题描述】:
我正在对现有的使用 .Net-Core 和 Entity Framework 的 webapp 添加一些修改。
使用了依赖注入,现在我们有 22 行调用 AddTransient() 方法。可悲的是,我是第 23 次通话中的“被选中者”,而 webapp 显示出一些奇怪的行为。我调试得越深越好,看到消息就卡住了:Ein Ausnahmefehler des Typs "System.StackOverflowException" ist in Microsoft.Extensions.DependencyInjection.dll aufgetreten.
翻译成英文类似:An Exception of type "System.StackoverflowException" was raised in Microsoft.Extensions.DependencyInjection.dll
我很确定第 23 个类的构造函数的构建方式与之前的 22 个相同。如果我禁用另一个 addTransient-Call,那么再次有 22 个 addTransient-calls,webapp 将按原样工作。这就是我假设一些限制的原因。
您是否遇到过同样的行为?或者是否有一些资源可以阅读有关 Microsoft.Net 依赖注入的限制以及在这种情况下可以做什么?
【问题讨论】:
-
这不是临时调用,而是作为第 23 次调用的一部分启动的对象进入无限递归,导致 SO 异常。您可以将该对象转移到第一个数字,它仍然会导致,检查该类并纠正问题
-
@MrinalKamboj 我将第 23 个 addTransient 移动到第一个的位置 => webapp 显示错误。然后我注释掉了第 22 条 addTransient-Call => webapp 就可以了。
标签: c# .net-core dependency-injection