我已经开发了.net web服务应用程序,在此我是否需要在离开方法之前处置所有对象,否则它将通过垃圾收集自动处理。
答案 0 :(得分:1)
您需要处理的任何实施IDisposable
的内容。将自动收集任何其他对象。
处理的最佳方式:
using (var item = new ADisposableClass())
{
// Use the item here
}
// item will be disposed even if there was an error since it is inside "using"
答案 1 :(得分:0)
实现IDisposable
的对象告诉您在完成后明确调用其Dispose
方法。这将是因为它消耗的资源应该只在最短的时间内保留。
Dispose
调用释放了对象使用的所有资源。在Dispose
方法的典型实现中,垃圾收集器在完成对象时将调用此方法的重载,该对象将处理任何非托管资源(如文件句柄)。但是此时通常不会发布托管资源;相反,他们会等待垃圾收集器清理它们。
因此,您应该始终(不仅仅是在Web服务方法中)在完成它时处置这样的对象。 using
块是最简单的方法。