rendered paste body public abstract class DisposablePattern : IDisposable
{
protected abstract void FreeManaged();
protected abstract void FreeUnmanaged();
private bool disposed;
protected void CheckDisposed() { if( disposed ) throw new ObjectDisposedException( GetType().Name ); }
public void Dispose()
{
Dispose( true );
GC.SuppressFinalize( this );
}
protected virtual void Dispose( bool disposing )
{
if( !disposed )
{
if( disposing )
FreeManaged();
FreeUnmanaged();
disposed = true;
}
}
~DisposablePattern()
{
Dispose( false );
}
}