public void Rollback(IEnlistment enlistment) { if (this.executeHasBeenCalled) { this.account.Balance = this.account.Balance - this.amount; } enlistment.Done(); }
/// <summary> /// 向当前事务登记一个事务处理过程的回调。 /// </summary> /// <param name="enlistment">指定的事务处理过程的回调接口。</param> public void Enlist(IEnlistment enlistment) { if (enlistment == null) { throw new ArgumentNullException("enlistment"); } //如果指定的事务处理程序已经被登记过则返回 if (_enlistments.Contains(enlistment)) { return; } //将指定的事务处理程序加入到列表中 _enlistments.Enqueue(enlistment); //通知事务处理程序进入事务准备阶段 //enlistment.OnEnlist(new EnlistmentContext(this, EnlistmentPhase.Prepare)); }
public override void InDoubt(IEnlistment enlistment) { enlistment.Done(); }
public override void Rollback(IEnlistment enlistment) { // Do rollback work... enlistment.Done(); }
public override void Commit(IEnlistment enlistment) { enlistment.Done(); }
public abstract void InDoubt(IEnlistment enlistment);
public abstract void Rollback(IEnlistment enlistment);
public abstract void Commit(IEnlistment enlistment);
public void InDoubt(IEnlistment enlistment) { this.Rollback(enlistment); }
public void Commit(IEnlistment enlistment) { enlistment.Done(); }