private void Initialize(
Transaction transactionToUse,
TimeSpan scopeTimeout,
bool interopModeSpecified)
{
if (null == transactionToUse)
{
throw new ArgumentNullException(nameof(transactionToUse));
}
ValidateScopeTimeout(nameof(scopeTimeout), scopeTimeout);
CommonInitialize();
if (TimeSpan.Zero != scopeTimeout)
{
_scopeTimer = new Timer(
TimerCallback,
this,
scopeTimeout,
TimeSpan.Zero
);
}
_expectedCurrent = transactionToUse;
_interopModeSpecified = interopModeSpecified;
TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log;
if (etwLog.IsEnabled())
{
etwLog.TransactionScopeCreated(_expectedCurrent.TransactionTraceId, TransactionScopeResult.TransactionPassed);
}
PushScope();
}