【发布时间】:2011-04-26 01:11:58
【问题描述】:
在 Ninject 中,在单例范围内声明绑定意味着每次都将返回相同的对象。永远只能有一个对象。
我想要的是一次返回一个对象。换句话说:
- 第一次调用 Get() 实例化一个新对象并返回它。
- 对 Get() 的后续调用返回相同的实例。
- 对象已被释放。
- 在对象被释放后对 Get() 的第一次调用会实例化一个新的/第二个对象并返回它。
- 对 Get() 的后续调用返回在步骤 4 中创建的对象。
编辑: 这个问题实际上很容易解决,使用providers 并让有问题的对象在处置时引发事件。我很好奇是否有办法在 Ninject 中使用作用域来做到这一点,并将这个问题留在这里,因为 Steven 的回答非常好。
【问题讨论】:
-
您正在运行什么类型的应用程序?它是多线程应用程序吗?
-
是的。像每线程实例这样的东西在这里没有用。
标签: dependency-injection scope inversion-of-control ninject