Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SqlConnection SqlCommand SqlDataReader IDisposable

Das ist zu 100% der richtige Weg. Wenn eine Klasse IDisposable nutzt es sollte in using eingeschlossen werden -Anweisung, um sicherzustellen, dass die Dispose() Methode aufgerufen wird. Darüber hinaus sollte die Kommunikation mit einer – noch dazu nicht verwalteten – externen Technologie wie SQL Server nicht auf die leichte Schulter genommen werden. Der SqlCommand Objekt implementiert IDisposable aus einem sehr guten Grund. Der folgende Code ist Dispose() Methode für den SqlCommand Objekt:

protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._cachedMetaData = null;
    }
    base.Dispose(disposing);
}

und wie Sie sehen können, gibt es einen Verweis auf _cachedMetaData frei Objekt, damit auch es bereinigt werden kann.