Skip to content

Gendarme.Rules.Correctness.DisposableFieldsShouldBeDisposedRule(git)

Sebastien Pouliot edited this page Mar 2, 2011 · 1 revision

DisposableFieldsShouldBeDisposedRule

Assembly: Gendarme.Rules.Correctness
Version: git

Description

The rule inspects all fields for disposable types and, if System.IDisposable is implemented, checks that the type's Dispose method does indeed call Dispose on all disposable fields.

Examples

Bad example:

class DoesNotDisposeMember : IDisposable {
    byte[] buffer;
    IDisposable field;
    public void Dispose ()
    {
        buffer = null;
        // field is not disposed
    }
}

Good example:

class DisposePattern : IDisposable {
    byte[] buffer;
    IDisposable field;
    bool disposed;
    public void Dispose ()
    {
        Dispose (true);
    }
    private void Dispose (bool disposing)
    {
        if (!disposed) {
            if (disposing) {
                field.Dispose ();
            }
            buffer = null;
            disposed = true;
        }
    }
}

Source code

You can browse the latest source code of this rule on github.com

Clone this wiki locally