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);
}
}
TransactionScope::TransactionScope ( ) | |
TransactionScope::TransactionScope ( System transactionToUse ) | |
TransactionScope::TransactionScope ( System transactionToUse, System scopeTimeout ) | |
TransactionScope::TransactionScope ( System transactionToUse, System scopeTimeout, System interopOption ) | |
TransactionScope::TransactionScope ( |
|
TransactionScope::TransactionScope ( TransactionScopeAsyncFlowOption asyncFlowOption ) | |
TransactionScope::TransactionScope ( ) : System.Diagnostics | |
TransactionScope::TransactionScope ( |
|
TransactionScope::TransactionScope ( |
|
TransactionScope::TransactionScope ( |
|
TransactionScope::TransactionScope ( |
|
TransactionScope::TransactionScope ( |
|
TransactionScope::TransactionScope ( TransactionScopeAsyncFlowOption asyncFlowOption ) : System.Diagnostics | |
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption ) : System.Diagnostics | |
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, TimeSpan scopeTimeout ) : System.Diagnostics | |
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, |
|
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, |
|
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, |
|
TransactionScope::TransactionScope ( TransactionScopeOption scopeOption, TransactionScopeAsyncFlowOption asyncFlowOption ) : System.Diagnostics |