我正在使用 Ninject 从内核检索 DataContext,我想知道 Ninject 是否自动处置 DataContext,或者他如何处理 dispose() 行为。根据我自己的经验,我知道处理数据上下文非常重要,并且每当您创建 DataContext 的直接对象(如:new DataContext())时,您都应该使用 using() 块。
因此,我的问题是:当我从内核检索 DataContext 时,我是否仍然必须使用 using() 块?或者 Ninject 可以帮我解决这个问题吗?
我正在为我的同事巴斯调查此事。我正在查看 Ninject 2 源代码(http://github.com/ninject/ninject.git http://github.com/ninject/ninject.git),并且似乎有一些生命周期管理。
当存在瞬态以外的其他作用域时,该作用域的垃圾收集将触发链接到该作用域的所有实例的停用(通过管道)。停用时,默认策略之一是 DisposableStrategy,如果实例是 IDisposable,则该策略将处置该实例!
我在 stackoveflow 上看到很多答案说 Ninject 不做任何生命周期管理,也许以前版本的 Ninject 也是如此?
但这种行为非常棘手,因为在使用注入服务时您不知道范围。因此,您不知道是否必须自己处理该对象(暂时的),或者 Ninject 会处理这个问题。
因此,服务范围的更改可能会引入错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)