【问题标题】:Disable implicit binding/injection of non explicitly bound classes in Ninject 2+在 Ninject 2+ 中禁用非显式绑定类的隐式绑定/注入
【发布时间】:2013-01-28 15:30:54
【问题描述】:

如果您从 NInject 请求未绑定对象,则默认行为是(如果有合适的构造函数可用)似乎是创建适当对象的实例。

我想禁用此行为(我遇到了一个难以调试的问题,因为某些东西是自动绑定的,而不是在模块中获取我的自定义绑定)。 This question 暗示这是可能的,但我无法从 NInject wiki 中找到答案。

【问题讨论】:

    标签: ninject ninject-3


    【解决方案1】:

    创建后从内核组件中删除SelfBindingResolver

    kernel.Components.RemoveAll<IMissingBindingResolver>();
    kernel.Components.Add<IMissingBindingResolver, DefaultValueBindingResolver>();
    

    【讨论】:

      【解决方案2】:

      以下是删除SelfBindingResolver 的更好、更直接的方法,无需假设DefaultValueBindingResolver 是唯一的其他IMissingBindingResolver 组件:

      kernel.Components.Remove<IMissingBindingResolver, SelfBindingResolver>();
      

      Remove&lt;T, TImplementation&gt;() 方法可能只添加在最新版本的 Ninject 中,但这对我使用 Ninject 3.2.2.0 有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多