代码之家  ›  专栏  ›  技术社区  ›  Jürgen Steinblock

使用Ninject将父类注入子类

  •  0
  • Jürgen Steinblock  · 技术社区  · 6 年前

    假设我有以下代码,其中依赖项需要引用父项。

    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);
        }
    }
    

    但我想知道我是否可以重构它以避免工厂。

    0 回复  |  直到 6 年前
    推荐文章