【问题标题】:Constructor with Dependencies具有依赖关系的构造函数
【发布时间】:2017-03-03 19:06:20
【问题描述】:

我想要的是让 Ninject 解决这种情况:

Class1(IClass2 a, IClass3, b, IClass c, IClass d) : IClass1

Class2() : IClass2

Class3(IClass2 a) : IClass3

所以只是为了说明Class1IClass2 有依赖关系,它首先被注入,其余参数都是IClass3 类型,它本身对IClass2 有依赖关系。我需要一种方法来获取Class1 的新实例,并确保在Ninject 解析IClass3 类型实例的依赖关系时使用IClass2相同实例

希望这是有道理的。

【问题讨论】:

    标签: c# dependency-injection ninject ninject-2


    【解决方案1】:

    您可以使用 ninject Object Scopes

    一些示例:

    • InSingletonScope() 将创建对象的一个​​实例 对于整个应用程序:

      Bind<IClass2>().To<Class2>().InSingletonScope();
      
    • InThreadScope()将为每个线程创建一个对象实例:

      Bind<IClass2>().To<Class2>().InThreadScope();
      

    您可以在上面的链接中找到更多其他范围。

    【讨论】:

    • 这可能很适合我的需要。如果Class2 实例在同一线程中的Class1 的2 个实例之间共享,我认为这不会太重要。谢谢!
    • 请不要使用InThreadScopeper thread lifestyle is very bad。请改用InScopeInRequestScope
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多