Как лучше всего очистить ресурсы, используемые объектом Crystal Reports ReportDocument?

Я работаю над приложением, которое использует Crystal Reports для создания отчетов. Оно открывает данный отчет в объекте ReportDocument, выполняет то, что ему необходимо, а затем закрывает отчет.

using (var report = OpenReport(reportSourceInfo))
{
    // Do stuff with the report
    report.Close();
}

Метод OpenReport выполняет некоторую проверку исходного файла и возвращает открытый объект ReportDocument.

Тестирование показало, что этот код делает то, что он должен делать, и, похоже, не имеет проблем. Проблема, по которой я действительно нуждаюсь в совете, - это когда я выполните сборку анализа кода (CA) проекта создания отчетов, я получаю следующее сообщение CA:

CA2202: Microsoft.Usage: объект «отчет» может быть удален более одного раза в методе «CrystalReportingProvider.ReportExecute (ReportSourceInformation)». Чтобы избежать генерации System.ObjectDisposedException, вы не должны вызывать Dispose более одного раза для объекта.

Теперь, очевидно, я могу изменить код, поэтому я не получаю это предупреждение CA, но мой вопрос: должен ли я?

Выполняет ли метод Crystal Reports ReportDocument.Close () все g правильно обрабатывать очистку ресурсов? Сообщение, кажется, указывает на то, что метод Close вызывает метод Dispose, но это кажется неправильным.

Мы будем благодарны за любой совет.

11
задан Fooksie 7 February 2012 в 06:50
поделиться