Tag: reportdocument

清理Crystal Reports ReportDocument对象使用的资源的最佳方法是什么?

我正在开发一个使用Crystal Reports进行报告的应用程序。 它在ReportDocument对象中打开一个给定的报告,完成它需要做的事情然后关闭报告。 using (var report = OpenReport(reportSourceInfo)) { // Do stuff with the report report.Close(); } OpenReport方法对源文件进行一些validation,并返回一个打开的ReportDocument对象。 测试表明,此代码完成了它的意图并且似乎没有任何问题。 我真正建议的问题是当我进行报告项目的代码分析(CA)构建时,我得到以下CA消息: CA2202:Microsoft.Usage:对象’report’可以在方法’CrystalReportingProvider.ReportExecute(ReportSourceInformation)’中多次处理。 为避免生成System.ObjectDisposedException,不应在对象上多次调用Dispose。 现在显然我可以改变代码,所以我没有得到这个CA警告,但我的问题是我应该吗? Crystal Reports ReportDocument.Close()方法是否可以正确处理资源清理? 该消息似乎表明Close方法调用Dispose方法,但这似乎不正确。 任何意见,将不胜感激。