To jest w 100% właściwy sposób. Jeśli klasa wykorzystuje IDisposable
powinien być opakowany w using
oświadczenie, aby upewnić się, że Dispose()
wywoływana jest metoda. Co więcej, nie należy lekceważyć komunikacji z zewnętrzną technologią - w tym przypadku niezarządzaną - taką jak SQL Server. SqlCommand
obiekt implementuje IDisposable
z bardzo dobrego powodu. Poniższy kod to Dispose()
metoda dla SqlCommand
obiekt:
protected override void Dispose(bool disposing)
{
if (disposing)
{
this._cachedMetaData = null;
}
base.Dispose(disposing);
}
i jak widać, uwalnia odwołanie do _cachedMetaData
obiekt, aby on również mógł zostać posprzątany.