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