Questo è al 100% il modo corretto. Se una classe sfrutta IDisposable
dovrebbe essere racchiuso in un using
per garantire che Dispose()
viene chiamato il metodo. Inoltre, la comunicazione con una tecnologia esterna, non gestita, come SQL Server, non dovrebbe essere presa alla leggera. Il SqlCommand
l'oggetto implementa IDisposable
per un'ottima ragione. Il codice seguente è Dispose()
metodo per SqlCommand
oggetto:
protected override void Dispose(bool disposing)
{
if (disposing)
{
this._cachedMetaData = null;
}
base.Dispose(disposing);
}
e come puoi vedere, sta rilasciando un riferimento a _cachedMetaData
oggetto in modo che anche lui possa essere ripulito.