private void Dispose(bool disposing)
        {
            if (m_isDisposed)
            {
                return;
            }

            Disposing.Raise(this, EventArgs.Empty);
            if (disposing)
            {
                DisposeManagedResources();
            }

            DisposeUnmanagedResources();
            Disposed.Raise(this, EventArgs.Empty);

            Disposing.Dispose();
            Disposed.Dispose();
            m_isDisposed = true;
        }