internal static Transaction FastGetTransaction(TransactionScope currentScope, ContextData contextData, out Transaction contextTransaction) { Transaction transaction = null; contextTransaction = null; contextTransaction = contextData.CurrentTransaction; switch (InteropMode(currentScope)) { case EnterpriseServicesInteropOption.None: transaction = contextTransaction; if ((transaction == null) && (currentScope == null)) { if (!TransactionManager.currentDelegateSet) { return(GetContextTransaction(contextData)); } transaction = TransactionManager.currentDelegate(); } return(transaction); case EnterpriseServicesInteropOption.Automatic: if (!UseServiceDomainForCurrent()) { return(contextData.CurrentTransaction); } return(GetContextTransaction(contextData)); case EnterpriseServicesInteropOption.Full: return(GetContextTransaction(contextData)); } return(transaction); }