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

◆ TransactionScope() [9/14]

System.Transactions.TransactionScope.TransactionScope ( TransactionScopeOption scopeOption,
TransactionOptions transactionOptions,
EnterpriseServicesInteropOption interopOption )
inline

Definition at line 193 of file TransactionScope.cs.

194 {
195 TransactionsEtwProvider log = TransactionsEtwProvider.Log;
196 if (log.IsEnabled())
197 {
198 log.MethodEnter(TraceSourceType.TraceSourceBase, this, ".ctor");
199 }
200 ValidateScopeTimeout("transactionOptions.Timeout", transactionOptions.Timeout);
201 TimeSpan timeout = transactionOptions.Timeout;
202 transactionOptions.Timeout = TransactionManager.ValidateTimeout(transactionOptions.Timeout);
203 TransactionManager.ValidateIsolationLevel(transactionOptions.IsolationLevel);
204 ValidateInteropOption(interopOption);
206 _interopOption = interopOption;
207 if (NeedToCreateTransaction(scopeOption))
208 {
209 _committableTransaction = new CommittableTransaction(transactionOptions);
211 }
212 else if (null != _expectedCurrent && IsolationLevel.Unspecified != transactionOptions.IsolationLevel && _expectedCurrent.IsolationLevel != transactionOptions.IsolationLevel)
213 {
215 }
216 if (null != _expectedCurrent && null == _committableTransaction && TimeSpan.Zero != timeout)
217 {
218 _scopeTimer = new Timer(TimerCallback, this, timeout, TimeSpan.Zero);
219 }
220 if (null == _expectedCurrent)
221 {
222 if (log.IsEnabled())
223 {
224 log.TransactionScopeCreated(TransactionTraceIdentifier.Empty, TransactionScopeResult.NoTransaction);
225 }
226 }
227 else
228 {
229 TransactionScopeResult transactionScopeResult = ((null == _committableTransaction) ? TransactionScopeResult.UsingExistingCurrent : TransactionScopeResult.CreatedTransaction);
230 if (log.IsEnabled())
231 {
232 log.TransactionScopeCreated(_expectedCurrent.TransactionTraceId, transactionScopeResult);
233 }
234 }
235 PushScope();
236 if (log.IsEnabled())
237 {
238 log.MethodExit(TraceSourceType.TraceSourceBase, this, ".ctor");
239 }
240 }
static string TransactionScopeIsolationLevelDifferentFromTransaction
Definition SR.cs:66
Definition SR.cs:7
static void TimerCallback(object state)
EnterpriseServicesInteropOption _interopOption
void ValidateScopeTimeout(string paramName, TimeSpan scopeTimeout)
void ValidateInteropOption(EnterpriseServicesInteropOption interopOption)
bool NeedToCreateTransaction(TransactionScopeOption scopeOption)
CommittableTransaction _committableTransaction
TransactionTraceIdentifier TransactionTraceId

References System.Transactions.TransactionScope._committableTransaction, System.Transactions.TransactionScope._expectedCurrent, System.Transactions.TransactionScope._interopModeSpecified, System.Transactions.TransactionScope._interopOption, 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.ValidateInteropOption(), System.Transactions.TransactionManager.ValidateIsolationLevel(), System.Transactions.TransactionScope.ValidateScopeTimeout(), System.Transactions.TransactionManager.ValidateTimeout(), and System.TimeSpan.Zero.