假设我有以下代码,其中依赖项需要引用父项。
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始终使用当前实例来解决依赖关系。
很明显,我可以使用工厂模式,实际上这就是我对Ninject.Extensions.Factory使用atm的方式。
public class Parent: IParent
{
private readonly IChild child;
public Parent(Func<IParent, IChild> childFactory)
{
this.child = childFactory(this);
}
}
但是我想知道是否可以重构它以避免工厂。