public static HttpContext Current { get { return ContextBase.Current as HttpContext; } set { ContextBase.Current = (object) value; } }
internal class ContextBase { internal static object Current { get { return CallContext.HostContext; } [SecurityPermission(SecurityAction.Demand, Unrestricted = true)] set { CallContext.HostContext = value; } } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] public ContextBase() { } internal static object SwitchContext(object newContext) { object hostContext = CallContext.HostContext; if (hostContext != newContext) CallContext.HostContext = newContext; return hostContext; } }
public static Object HostContext { [System.Security.SecurityCritical] // auto-generated get { Object hC; IllogicalCallContext ilcc = Thread.CurrentThread.GetIllogicalCallContext(); hC = ilcc.HostContext; if (hC == null) { LogicalCallContext lcc = GetLogicalCallContext(); hC = lcc.HostContext; } return hC; } [System.Security.SecurityCritical] // auto-generated_required set { if (value is ILogicalThreadAffinative) { IllogicalCallContext ilcc = Thread.CurrentThread.GetIllogicalCallContext(); ilcc.HostContext = null; LogicalCallContext lcc = GetLogicalCallContext(); lcc.HostContext = value; } else { LogicalCallContext lcc = GetLogicalCallContext(); lcc.HostContext = null; IllogicalCallContext ilcc = Thread.CurrentThread.GetIllogicalCallContext(); ilcc.HostContext = value; } } }
internal IllogicalCallContext GetIllogicalCallContext() { return ExecutionContext.IllogicalCallContext; }