public static CulturePreservingExecutionContext Capture() { // ExecutionContext.SuppressFlow had been called - we expect // ExecutionContext.Capture() to return null, so match that // behavior and return null. if (ExecutionContext.IsFlowSuppressed()) { return(null); } var culturePreservingContext = new CulturePreservingExecutionContext(); if (culturePreservingContext._context != null) { return(culturePreservingContext); } else { // If ExecutionContext.Capture() returns null for any other // reason besides IsFlowSuppressed, then match that behavior // and return null culturePreservingContext.Dispose(); return(null); } }