using System;
namespace JD.Kernel.Classes
{
public class AbstractFinalizable : IDisposable
{
#region Variables
private bool m_isDisposed;
#endregion
#region Methods
///
/// Finalizer.
///
~AbstractFinalizable()
{
DisposeImpl(false);
}
///
/// Dispose.
///
public void Dispose()
{
DisposeImpl(true);
GC.SuppressFinalize(this);
}
private void DisposeImpl(bool disposing)
{
if (!m_isDisposed)
{
m_isDisposed = true;
Dispose(disposing);
}
}
///
/// Protected implementation of the Dispose pattern.
///
///
protected virtual void Dispose(bool disposing)
{
}
#endregion
#region Properties
///
/// Has this object been disposed?
///
public bool IsDisposed
{
get { return m_isDisposed; }
}
#endregion
}
}