c# - Ninject 中的 transient 范围对象何时停用?

标签 c# ioc-container ninject

当 Ninject 中的一个对象与 InTransientScope() 绑定(bind)时,该对象不会被放入缓存中,因为它是,呃, transient 的并且没有任何作用域。

完成对象后,我可以调用kernel.Release(obj);这会传递到缓存,在那里它检索缓存的项目并使用缓存的条目调用 Pipeline.Deactivate

但是由于没有缓存临时对象,所以这不会发生。我无法弄清楚在哪里(或谁)对 transient 对象执行停用。或者假设 transient 对象只被激活,如果我想要一个可停用的对象,我需要使用其他范围?

最佳答案

您的假设是正确的。 Ninject 不会跟踪 transient 对象,也不会在停用管道中对其进行控制。清理 transient 实例是您的责任。如果您希望内核管理您的实例,那么您需要使用内置作用域或自定义作用域。

关于c# - Ninject 中的 transient 范围对象何时停用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434984/

相关文章:

c# - 使用正则表达式从字符串中提取坐标的更好方法

c# - WPF:如何使用 MVVM 将命令绑定(bind)到 ListBoxItem?

asp.net-mvc-3 - 何时应该在 Ninject.MVC3 中使用 Kernel.BeginBlock()

c++ - 依赖注入(inject)库的正确比喻是什么?

dependency-injection - Ninject 与 Windows 应用程序

c# - SignalR 的 Ninject 依赖注入(inject)

c# - 如何更新现有行的值而不是添加新行

c# - 它们是否具有 Java 中的 C# 静态类的等效项?

ninject - Simpleinjctor 根据泛型类型获取实例

ioc-container - Ninject:为 AoP 代理类型时可以使用注入(inject)构造函数吗?