/// Protected implementation of Dispose pattern.
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            if (disposing)
            {
                // Free any other managed objects here.
                _loggingInterceptor.Dispose();
                _loggingInterceptor = null;
            }

            // Free any unmanaged objects here.
            //
            _disposed = true;
        }