C# 处理.NET Crystal ReportDocument

C# 处理.NET Crystal ReportDocument,c#,.net,crystal-reports,C#,.net,Crystal Reports,我有一个factory类,它保存了一个CrystalReports.Engine.ReportDocument的实例。我正在实现IDisposable per,但不确定资源是托管的还是非托管的 我假设它是从.NET库开始管理的,并且是这样做的: using CrystalDecisions.CrystalReports.Engine; public class ReportFactory: IDisposable { public ReportDocument Report { ge

我有一个factory类,它保存了一个
CrystalReports.Engine.ReportDocument
的实例。我正在实现IDisposable per,但不确定资源是托管的还是非托管的

我假设它是从.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是否为托管资源,以及我是否正确处理了它。

我在回答我自己的问题。它给了我不活动的徽章,所以我做了更多的挖掘,并得出结论,如果一个对象实现了IDisposable,那么它就是一个托管资源,我正在正确地处理它