有人可以向我解释一下我们如何以及为什么需要使用 Dispose() 吗?它是 ASP.NET MVC 4 附带的默认控制器模板的一部分。当对象(在本例中是数据库中的数据)不再使用时,.NET 中的垃圾收集器是否应该自动启动?
从数据库加载时应使用 Dispose() 而不是常规对象分配,这是否正确?
Dispose
在处理非托管资源时使用(可以说是一次性模式)。是的,.NET 垃圾收集器将清理 .NET 托管对象,但数据库连接是不由 .NET Framework 管理的较低级别对象。文件处理程序也是如此——在打开/写入文件时使用 Dispose 模式,因为实际的文件句柄不是由 .NET 管理的。
The MSDN 文档 http://msdn.microsoft.com/en-us/library/system.idisposable.aspx描述IDisposable
以及为什么要实施它。
EF 使用它是因为在DbContext
is a DbDataConnection
,它适用于非托管资源。在这些情况下,最好实施IDisposable
并相应地清理非托管资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)