假设我有以下代码,其中依赖项需要引用父项。
public class Parent: IParent
{
private readonly IChild child;
public Parent()
{
this.child = new Child(this);
}
}
public class Child
{
private readonly IParent parent;
public Child(IParent parent)
{
this.parent = parent;
}
}
现在,我想使用ICO和Ninject来重构这段代码,以注入一个IChild实例,该实例本身引用父对象
public class Parent: IParent
{
private readonly IChild child;
public Parent(IChild child)
{
this.child = child;
}
}
可以告诉nancy始终使用当前实例来解决依赖关系吗。
显然,我可以使用工厂模式,事实上,这就是我使用atm的方式
Ninject.Extensions.Factory
.
public class Parent: IParent
{
private readonly IChild child;
public Parent(Func<IParent, IChild> childFactory)
{
this.child = childFactory(this);
}
}
但我想知道我是否可以重构它以避免工厂。