protected override void Dispose(bool disposing) { if (disposing) { // Dispose of old memento first if (_memento != null) { _memento.Dispose(); _memento = null; } } base.Dispose(disposing); }