如果我们希望GC收集的实例正确处理,必须使用哪个范围?

时间:2013-03-17 19:41:48

标签: ninject named-scope

如果希望GC收集的实例正确处置,则必须使用InParentScope吗?如果不是应该使用哪个范围?

2 个答案:

答案 0 :(得分:2)

除了InTransientScope()之外的任何范围都在范围的生命周期结束时被处置。没有正确的,因为范围定义了对象的生存时间,这取决于具体情况。

当对象InParentScope()被注入的对象被垃圾收集或被Ninject取消激活时,它是Dispose,因为它自己的范围已经结束。

请注意,如果父级的范围为InTransientScope(),则不会跟踪该对象,因此请谨慎使用。

答案 1 :(得分:2)

如果https://github.com/ninject/ninject/wiki/Object-Scopes未涵盖您的问题,我们很乐意根据您的后续行动进行任何更改。