protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { if (_gsViewState == null) { if (_viewer != null) { _viewer.Dispose(); _viewer = null; } } else { _viewer.RestoreState(_gsViewState); } } _disposed = true; } }