Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TransactionScope() [8/14]

System.Transactions.TransactionScope.TransactionScope ( TransactionScopeOption scopeOption,
TransactionOptions transactionOptions,
TransactionScopeAsyncFlowOption asyncFlowOption )
inline

Definition at line 146 of file TransactionScope.cs.

147 {
148 TransactionsEtwProvider log = TransactionsEtwProvider.Log;
149 if (log.IsEnabled())
150 {
151 log.MethodEnter(TraceSourceType.TraceSourceBase, this, ".ctor");
152 }
153 ValidateScopeTimeout("transactionOptions.Timeout", transactionOptions.Timeout);
154 TimeSpan timeout = transactionOptions.Timeout;
155 transactionOptions.Timeout = TransactionManager.ValidateTimeout(transactionOptions.Timeout);
156 TransactionManager.ValidateIsolationLevel(transactionOptions.IsolationLevel);
157 ValidateAndSetAsyncFlowOption(asyncFlowOption);
158 if (NeedToCreateTransaction(scopeOption))
159 {
160 _committableTransaction = new CommittableTransaction(transactionOptions);
162 }
163 else if (null != _expectedCurrent && IsolationLevel.Unspecified != transactionOptions.IsolationLevel && _expectedCurrent.IsolationLevel != transactionOptions.IsolationLevel)
164 {
166 }
167 if (null != _expectedCurrent && null == _committableTransaction && TimeSpan.Zero != timeout)
168 {
169 _scopeTimer = new Timer(TimerCallback, this, timeout, TimeSpan.Zero);
170 }
171 if (null == _expectedCurrent)
172 {
173 if (log.IsEnabled())
174 {
175 log.TransactionScopeCreated(TransactionTraceIdentifier.Empty, TransactionScopeResult.NoTransaction);
176 }
177 }
178 else
179 {
180 TransactionScopeResult transactionScopeResult = ((null == _committableTransaction) ? TransactionScopeResult.UsingExistingCurrent : TransactionScopeResult.CreatedTransaction);
181 if (log.IsEnabled())
182 {
183 log.TransactionScopeCreated(_expectedCurrent.TransactionTraceId, transactionScopeResult);
184 }
185 }
186 PushScope();
187 if (log.IsEnabled())
188 {
189 log.MethodExit(TraceSourceType.TraceSourceBase, this, ".ctor");
190 }
191 }
static string TransactionScopeIsolationLevelDifferentFromTransaction
Definition SR.cs:66
Definition SR.cs:7
static void TimerCallback(object state)
void ValidateScopeTimeout(string paramName, TimeSpan scopeTimeout)
void ValidateAndSetAsyncFlowOption(TransactionScopeAsyncFlowOption asyncFlowOption)
bool NeedToCreateTransaction(TransactionScopeOption scopeOption)
CommittableTransaction _committableTransaction
TransactionTraceIdentifier TransactionTraceId

References System.Transactions.TransactionScope._committableTransaction, System.Transactions.TransactionScope._expectedCurrent, System.Transactions.TransactionScope._scopeTimer, System.Transactions.Transaction.Clone(), System.Transactions.TransactionTraceIdentifier.Empty, System.Diagnostics.Tracing.EventSource.IsEnabled(), System.Transactions.Transaction.IsolationLevel, System.Transactions.TransactionOptions.IsolationLevel, System.Transactions.TransactionsEtwProvider.Log, System.Transactions.TransactionsEtwProvider.MethodEnter(), System.Transactions.TransactionsEtwProvider.MethodExit(), System.Transactions.TransactionScope.NeedToCreateTransaction(), System.Transactions.TransactionScope.PushScope(), System.timeout, System.Transactions.TransactionOptions.Timeout, System.Transactions.TransactionScope.TimerCallback(), System.Transactions.TransactionsEtwProvider.TransactionScopeCreated(), System.SR.TransactionScopeIsolationLevelDifferentFromTransaction, System.Transactions.Transaction.TransactionTraceId, System.Transactions.TransactionScope.ValidateAndSetAsyncFlowOption(), System.Transactions.TransactionManager.ValidateIsolationLevel(), System.Transactions.TransactionScope.ValidateScopeTimeout(), System.Transactions.TransactionManager.ValidateTimeout(), and System.TimeSpan.Zero.