Esta é 100% a maneira correta. Se uma classe utiliza
IDisposable
ele deve ser envolvido em um using
para garantir que o Dispose()
método é chamado. Além disso, a comunicação com uma tecnologia externa - não gerenciada - como o SQL Server não deve ser tomada de ânimo leve. O SqlCommand
objeto implementa IDisposable
por um motivo muito bom. O código abaixo é o Dispose()
método para o SqlCommand
objeto:protected override void Dispose(bool disposing)
{
if (disposing)
{
this._cachedMetaData = null;
}
base.Dispose(disposing);
}
e como você pode ver, está liberando uma referência ao
_cachedMetaData
objeto para que ele também possa ser limpo.