【发布时间】:2020-09-02 09:13:47
【问题描述】:
嘿,我已经从 Autofac 切换到 DryIoc。我的代码以前可以工作,但现在导致异常“解析时检测到递归依赖项”。 (代码已简化)
public class AFactory {
public AFactory(Func<A> getA){ }
}
public class BFactory {
public BFactory(Func<B> getB, AFactory factory){ }
}
public class A {
public A(IrrelevantService service, BFactory factory){ }
}
实际的代码很复杂,所以假设这个代码结构是有必要的。
它正在尝试解决 AFactory --> A --> BFactory --> AFactory 这就是问题所在。但是由于它使用的是 Func 所以应该没问题吗? (或者至少在 Autofac 中)。
有没有办法注册它使其不会抛出这个异常?
【问题讨论】:
-
您能详细说明一下吗?在我的脑海中,我认为容器会尝试解析 AFactory 并会看到“Func”然后停止(防止递归)。您能否提供一个如何编写代码的示例,以便它使用 Func 以便我更好地理解?
-
不,别管我,我读错了。我把之前的评论删了,没有意义。
标签: c# ioc-container dryioc