/// <summary> /// Pushes the specified scope. /// </summary> /// <param name="scope">The scope.</param> /// <param name="combinationLogic">The combination logic.</param> public static void Push(T scope, TransactionCombinationLogic combinationLogic) { if (m_stack == null) { m_stack = new Stack <T>(); } switch (combinationLogic) { case TransactionCombinationLogic.Combine: if (Current == null) { m_stack.Push(scope); } scope.m_target = Current; break; case TransactionCombinationLogic.RequiresNew: scope.m_target = scope; m_stack.Push(scope); break; default: throw new NotImplementedException(); } }
/// <summary> /// Initializes a new instance of the <see cref="LogicalDisposeScope"/> class. /// </summary> /// <param name="combinationLogic">The combination logic.</param> public LogicalDisposeScope(TransactionCombinationLogic combinationLogic) { LogicalTransactionScope <LogicalDisposeScope> .Push(this, combinationLogic); }