当 Ninject 中的对象与InTransientScope()
,该对象不会放入缓存中,因为它是,呃,瞬态的并且没有任何范围。
完成该对象后,我可以调用kernel.Release(obj)
;这会传递到缓存,在缓存中检索缓存的项目并调用Pipeline.Deactivate
使用缓存的条目。
但由于瞬态对象没有被缓存,所以这种情况不会发生。我无法弄清楚在哪里(或谁)执行瞬态对象的停用。或者是假设瞬态对象仅被激活,并且如果我想要一个可停用的对象,我需要使用其他范围?
你的假设是正确的。瞬态对象不会在 Ninject 中进行跟踪,也不会在停用管道中进行控制。您有责任清理瞬态实例。如果您希望内核管理您的实例,那么您需要使用内置作用域或自定义作用域。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)