IDISP022

November 25, 2021 · View on GitHub

Call this.Dispose(false)

TopicValue
IdIDISP022
SeverityWarning
EnabledTrue
CategoryIDisposableAnalyzers.Correctness
CodeFinalizerAnalyzer

Description

Call this.Dispose(false).

Motivation

public class C : IDisposable
{
    ~C()
    {
        this.Dispose(↓true); // should be false here.
    }

    public void Dispose()
    {
        this.Dispose(true);
    }

    private void Dispose(bool disposing)
    {
        ...
    }
}

How to fix violations

ADD HOW TO FIX VIOLATIONS HERE

Configure severity

Via ruleset file.

Configure the severity per project, for more info see MSDN.

Via #pragma directive.

#pragma warning disable IDISP022 // Call this.Dispose(false)
Code violating the rule here
#pragma warning restore IDISP022 // Call this.Dispose(false)

Or put this at the top of the file to disable all instances.

#pragma warning disable IDISP022 // Call this.Dispose(false)

Via attribute [SuppressMessage].

[System.Diagnostics.CodeAnalysis.SuppressMessage("IDisposableAnalyzers.Correctness", 
    "IDISP022:Call this.Dispose(false)", 
    Justification = "Reason...")]