正在处理.NET Crystal报表文档
本文关键字:报表 文档 Crystal NET 处理 | 更新日期: 2023-09-27 17:59:45
我有一个工厂类,它保存了一个CrystalReports.Engine.ReportDocument
的实例。我正在根据一篇很棒的SO文章实现IDisposable,但不确定资源是托管的还是非托管的。
我想它是从a开始管理的。NET库,并这样做:
using CrystalDecisions.CrystalReports.Engine;
public class ReportFactory: IDisposable {
public ReportDocument Report { get; private set; }
private bool IsDisposed { get; set; }
public void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
private void Dispose(bool freeManagedReousrces) {
try {
if (IsDisposed) return;
if ((freeManagedReousrces)) {
// Release managed resources.
if (Report != null) {
Report.Dispose();
}
}
// Release un-managed resources.
// None
}
finally {
IsDisposed = true;
}
}
// No finalizer needed: no unmanaged resources.
}
请验证ReportDocument是否是托管资源,以及我是否正确处理了它。
我在回答我自己的问题。它给了我不活动的Tumbleweed徽章,所以我做了更多的挖掘,并从这篇文章中得出结论,如果一个对象实现了IDisposable,它就是一个托管资源,我正在正确地处理它。