gpt4 book ai didi

dependency-injection - 如何创建一个返回相同对象的 Ninject 自定义范围,直到该对象被释放?

转载 作者:行者123 更新时间:2023-12-04 14:51:26 24 4
gpt4 key购买 nike

在 Ninject 中,在单例范围内声明绑定(bind)意味着每次都将返回相同的对象。永远只能有一个对象。

我想要的是一次返回一个对象。换句话说:

  • 第一次调用 Get() 实例化一个新对象并返回它。
  • 对 Get() 的后续调用返回相同的实例。
  • 对象被处置。
  • 在对象被释放后对 Get() 的第一次调用会实例化一个新的/第二个对象并返回它。
  • 对 Get() 的后续调用返回在步骤 4 中创建的对象。

  • 编辑:使用 providers 来解决这个问题实际上相当简单。并让相关对象在处置时引发事件。我很好奇是否有办法在 Ninject 中使用范围来做到这一点,并将这个问题留在这里,因为 Steven 的回答非常好。

    最佳答案

    我知道这已经解决了,但是...@Steven 的回答并没有指出有 InScope Ninject 中的机制可以解决您正在寻找的各个方面。
    看看 Nate Kohari 的 Cache and Collect关于如何在 Ninject 2 中进行范围界定的文章。
    接下来,去查看 ninject 源码,看看 InRequestScope 是如何实现的(包括拆解是如何 Hook 的)。为 2.3-4 计划了一些工作,以概括其工作原理,以允许将其用于某些复杂的托管场景。
    当您查看了这两个引用资料后,请在 ninject 邮件列表上提问,您肯定会找到解决方案。

    关于dependency-injection - 如何创建一个返回相同对象的 Ninject 自定义范围,直到该对象被释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784917/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com