我想用Ninject來編寫一個對象圖,其中父對象包含一個子對象,並且子對象也維護對其父對象的引用。Ninject - 如何從注入的子對象引用父對象
沒有依賴注入,它會是這個樣子:
public interface IParent { }
public interface IChild { }
public class Parent : IParent
{
public Parent()
{
Child = new Child(this);
}
public IChild Child { get; private set; }
}
public class Child : IChild
{
public Child(IParent parent)
{
Parent = parent;
}
public IParent Parent { get; private set; }
}
我希望能夠配置Ninject綁定來支持這種關係,使得IParent
多個實例可以在短暫的範圍被實例化,每個實例都會自動填充一個IChild
實例,該實例持有對其的循環引用。
我讀過的評論表明Ninject可以支持循環關係,但是我還沒有能夠達到工作配置。
有什麼建議嗎?
謝謝,
Tim。
至少我試過......我沒有成功,也沒有很多reasources到這個主題。這是因爲你首先不應該有循環依賴。你應該考慮使用不同的設計。 –
@Viktor - 是的,我也對循環引用感到不舒服,但我還沒有找到任何其他可以做我需要的設計。無論如何,我已經找到了一個合理的解決方法(下面發佈)。看看其他人是否發佈了真正的解決方案將是有趣的。 –