/// <summary> /// Aborts a linked undo transaction. /// </summary> public void Rollback() { if (!IsActive) { throw new InvalidOperationException("This operation can only be performed when a transaction is active."); } ErrorHandler.ThrowOnFailure(_mgr.AbortLinkedUndo()); _isActive = false; }
public void Dispose() { AssertIsForeground(); // once either commit or disposed is called, don't do finalizer check GC.SuppressFinalize(this); if (_transactionAlive) { _service.ActiveTransactions--; Marshal.ThrowExceptionForHR(_undoManager.AbortLinkedUndo()); _transactionAlive = false; } }