// GetCurrentTransactionAndScope // // Returns both the current transaction and scope. This is implemented for optimizations // in TransactionScope because it is required to get both of them in several cases. internal static void GetCurrentTransactionAndScope( TxLookup defaultLookup, out Transaction?current, out TransactionScope?currentScope, out Transaction?contextTransaction) { current = null; currentScope = null; contextTransaction = null; ContextData contextData = ContextData.LookupContextData(defaultLookup); if (contextData != null) { currentScope = contextData.CurrentScope; current = FastGetTransaction(currentScope, contextData, out contextTransaction); } }