ich IDisposable
bin Umsetzung, und in meiner Dispose()
Methode, wenn Dispose()
auf anderen verwalteten Ressourcen aufruft ich bin mit dem ?.
Operator wie folgt:CA2213 Warnung bei Verwendung?. (Null-bedingter Operator) zu nennen Entsorgen
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if(disposing)
{
_ChangeLock?.Dispose();
}
}
Ich bin immer noch
CA2213: die folgenden code analysis error bekommen 'MyClass' enthält Feld 'MyClass._ChangeLock', die von IDisposable Typ ist: 'ReaderWriterLockSlim'. Ändern Sie die Dispose-Methode für MyClass, um in diesem Feld Dispose oder Close aufzurufen.
Wenn ich auf eine Standard-Nullprüfung zu ändern, geht die Code-Analyse-Warnung weg:
if(_ChangeLock != null)
_ChangeLock.Dispose();
Gibt es etwas falsch mit dem Null-bedingten Operator der Art, wie ich bin, oder ist diese Code-Analyse Regel veraltet, oder was?
Es ist die CA-Regel, die aktualisiert werden muss. – Corey