我应该在这里实现IDisposable吗?

Gur*_*epS 7 .net c# idisposable sqldatareader

我调用SQL Server的方法返回一个DataReader但是因为我需要做什么 - 这是返回DataReader到驻留在页面代码隐藏的调用方法 - 我无法关闭调用SQL的方法的类中的连接服务器.因此,我没有最终或使用块.

处理资源以使类实现的正确方法是IDisposable什么?或者,我应该从调用者明确处置非托管资源(类级别字段)吗?

编辑:我发回datareader因为我需要将特定数据从datareader绑定到listitem控件,所以在调用类(Codebehind页面)中,我这样做:

 new ListItem(datareader["dc"]); (along those lines).
Run Code Online (Sandbox Code Playgroud)

Kyl*_*ndo 7

我会说是的,实施IDisposable.据我所知,使用它的主要原因之一是当你不能相信对象的用户足以自己正确地做到这一点.这似乎是一个主要的候选人.

尽管如此,您的架构存在一个问题.为什么要将自己发送DataReader到页面而不是通过返回必要的方法调用方法来为您(包括相关的清理)执行此操作?如果有必要将实际读者提供给页面,那么就这样吧.