gpt4 book ai didi

c# - 如何解决 Funq IoC 中的循环依赖?

转载 作者:太空狗 更新时间:2023-10-30 00:33:21 25 4
gpt4 key购买 nike

我有两个类需要相互引用。

class Foo
{
public Foo(IBar bar) {}
}

class Bar
{
public Bar(IFoo foo) {}
}

当我这样做时:

container.RegisterAutoWiredAs<Foo, IFoo>();
container.RegisterAutoWiredAs<Bar, IBar>();

当我尝试解析任一接口(interface)时,我得到一个循环依赖图,这会导致无限循环。在 Funq 中有解决这个问题的简单方法吗?或者您知道解决方法吗?

最佳答案

您始终可以(我会说在所有容器中)依赖 Lazy 作为依赖项,这将产生所需的结果。在 Funq 中:

public Bar(Lazy<IFoo> foo) ...
public Foo(Lazy<IBar> bar) ...

container.Register<IBar>(c => new Bar(c.LazyResolve<IFoo>());
container.Register<IFoo>(c => new Foo(c.LazyResolve<IBar>());

关于c# - 如何解决 Funq IoC 中的循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12301792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com