Това е 100% правилният начин. Ако даден клас използва IDisposable
той трябва да бъде обвит в using
изявление, за да се гарантира, че Dispose()
методът се извиква. Освен това, комуникацията с външна технология - при това неуправлявана - като SQL Server не трябва да се приема лекомислено. SqlCommand
обектът реализира IDisposable
по много добра причина. Кодът по-долу е Dispose()
метод за SqlCommand
обект:
protected override void Dispose(bool disposing)
{
if (disposing)
{
this._cachedMetaData = null;
}
base.Dispose(disposing);
}
и както можете да видите, той пуска препратка към _cachedMetaData
обект, за да може и той да бъде почистен.