Если реализации IDisposable делают Dispose() безопасным для вызова несколько раз? Или наоборот? Какой подход подходит для большинства классов .NET Framework?
В частности, безопасно ли вызывать System.Data.Linq.DataContext.Dispose()
несколько раз?
Я прошу, потому что мне интересно, нужна ли эта дополнительная защита:
public override void Dispose(bool disposing)
{
// Extra protection...
if (this.obj != null)
{
this.obj.Dispose();
this.obj = null;
}
// Versus simply...
this.obj.Dispose();
base.Dispose(disposing);
}
при удалении IDisposable членов класса или я должен просто вызвать this.obj.Dispose()
, не заботясь о том, был ли он ранее вызван.