【问题标题】:Ninject how to prevent shared objectsNinject 如何防止共享对象
【发布时间】:2021-10-30 04:57:14
【问题描述】:

我的内核中有如下绑定

kernel.Bind<IMyDependency>().To<MyDependencyImplementation>();

在单个应用程序域中,我们多次调用kernel.Get&lt;IMyDependency&gt;()Get&lt;&gt; 每次返回一个共享实例还是一个新实例?

我们在团队正在努力纠正的一个依赖项中发现了线程安全问题,但在此期间,如果我们可以让 ninject 为每个 Get 调用分配一个单独的对象(非共享),它可以节省我们的日子。

Ninject 中是否有任何方法可以让一个特定依赖项在每次 Get 调用时返回一个新实例(或至少是一个非共享实例)?

【问题讨论】:

    标签: ninject


    【解决方案1】:

    Get&lt;IMyDependency&gt; 每次都返回一个共享实例还是一个新实例?

    每次调用都会获得一个新的MyDependencyImplementation 实例。这是默认行为,除非在特定范围内调用了 Bind()

    您可以查看Scopes 文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 2021-01-27
      • 2016-10-05
      • 2017-03-26
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多