System.Transactions.TransactionScope.TransactionScope C# (CSharp) Method

TransactionScope() public method

public TransactionScope ( TransactionScopeOption scopeOption, TimeSpan scopeTimeout, TransactionScopeAsyncFlowOption asyncFlowOption ) : System.Diagnostics
scopeOption TransactionScopeOption
scopeTimeout TimeSpan
asyncFlowOption TransactionScopeAsyncFlowOption
return System.Diagnostics
        public TransactionScope(
            TransactionScopeOption scopeOption,
            TimeSpan scopeTimeout,
            TransactionScopeAsyncFlowOption asyncFlowOption
            )
        {
            TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log;
            if (etwLog.IsEnabled())
            {
                etwLog.MethodEnter(TraceSourceType.TraceSourceBase, this);
            }

            ValidateScopeTimeout(nameof(scopeTimeout), scopeTimeout);
            TimeSpan txTimeout = TransactionManager.ValidateTimeout(scopeTimeout);

            ValidateAndSetAsyncFlowOption(asyncFlowOption);

            if (NeedToCreateTransaction(scopeOption))
            {
                _committableTransaction = new CommittableTransaction(txTimeout);
                _expectedCurrent = _committableTransaction.Clone();
            }

            if ((null != _expectedCurrent) && (null == _committableTransaction) && (TimeSpan.Zero != scopeTimeout))
            {
                // BUGBUG: Scopes should not use individual timers
                _scopeTimer = new Timer(
                    TimerCallback,
                    this,
                    scopeTimeout,
                    TimeSpan.Zero);
            }

            if (null == _expectedCurrent)
            {
                if (etwLog.IsEnabled())
                {
                    etwLog.TransactionScopeCreated(TransactionTraceIdentifier.Empty, TransactionScopeResult.NoTransaction);
                }
            }
            else
            {
                TransactionScopeResult scopeResult;

                if (null == _committableTransaction)
                {
                    scopeResult = TransactionScopeResult.UsingExistingCurrent;
                }
                else
                {
                    scopeResult = TransactionScopeResult.CreatedTransaction;
                }

                if (etwLog.IsEnabled())
                {
                    etwLog.TransactionScopeCreated(_expectedCurrent.TransactionTraceId, scopeResult);
                }
            }

            PushScope();

            if (etwLog.IsEnabled())
            {
                etwLog.MethodExit(TraceSourceType.TraceSourceBase, this);
            }
        }

Same methods

TransactionScope::TransactionScope ( )
TransactionScope::TransactionScope ( System transactionToUse )
TransactionScope::TransactionScope ( System transactionToUse, System scopeTimeout )
TransactionScope::TransactionScope ( System transactionToUse, System scopeTimeout, System interopOption )
TransactionScope::TransactionScope ( Transaction transactionToUse, TransactionScopeAsyncFlowOption asyncFlowOption )
TransactionScope::TransactionScope ( TransactionScopeAsyncFlowOption asyncFlowOption )
TransactionScope::TransactionScope ( ) : System.Diagnostics
TransactionScope::TransactionScope ( Transaction transactionToUse ) : System.Diagnostics
TransactionScope::TransactionScope ( Transaction transactionToUse, TimeSpan scopeTimeout ) : System.Diagnostics
TransactionScope::TransactionScope ( Transaction transactionToUse, TimeSpan scopeTimeout, EnterpriseServicesInteropOption interopOption ) : System.Diagnostics
TransactionScope::TransactionScope ( Transaction transactionToUse, TimeSpan scopeTimeout, TransactionScopeAsyncFlowOption asyncFlowOption ) : System.Diagnostics
TransactionScope::TransactionScope ( Transaction transactionToUse, TransactionScopeAsyncFlowOption asyncFlowOption ) : System.Diagnostics
TransactionScope::TransactionScope ( TransactionScopeAsyncFlowOption asyncFlowOption ) : System.Diagnostics
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption ) : System.Diagnostics
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, TimeSpan scopeTimeout ) : System.Diagnostics
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, TransactionOptions transactionOptions ) : System.Diagnostics
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, TransactionOptions transactionOptions, EnterpriseServicesInteropOption interopOption ) : System.Diagnostics
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, TransactionOptions transactionOptions, TransactionScopeAsyncFlowOption asyncFlowOption ) : System.Diagnostics
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, TransactionScopeAsyncFlowOption asyncFlowOption ) : System.Diagnostics