Detta är 100% på rätt sätt. Om en klass utnyttjar IDisposable den ska vara inslagen i en using för att säkerställa att Dispose() metod kallas. Vidare bör det inte tas lätt på att kommunicera med en utomstående teknologi - som inte hanteras som SQL Server. SqlCommand objekt implementerar IDisposable av en mycket god anledning. Koden nedan är Dispose() metod för SqlCommand objekt:
protected override void Dispose(bool disposing)
{
if (disposing)
{
this._cachedMetaData = null;
}
base.Dispose(disposing);
}
och som du kan se släpper den en referens till _cachedMetaData föremål så att det också kan städas upp.