CA2213 aviso ao usar? (Operador com condição nula) para chamar Dispose

Estou implementandoIDisposablee na minhaDispose() método ao chamarDispose() em outros recursos gerenciados, estou usando o?. operador assim:

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

    protected virtual void Dispose(bool disposing)
    {
        if(disposing)
        {
            _ChangeLock?.Dispose();
        }
    }

Eu ainda estou recebendo o seguinteerro de análise de código:

CA2213: 'MyClass' contém o campo 'MyClass._ChangeLock' que é do tipo IDisposable: 'ReaderWriterLockSlim'. Altere o método Dispose em 'MyClass' para chamar Dispose ou Close neste campo.

Se eu mudar para uma verificação nula padrão, o aviso de análise de código desaparece:

if(_ChangeLock != null)
    _ChangeLock.Dispose();

Existe algo errado em usar o operador condicional nulo do jeito que eu sou, ou essa regra de análise de código está desatualizada ou o quê?

questionAnswers(1)

yourAnswerToTheQuestion