标签:
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;
} System.Web.HttpContext.Current 跟踪分析
标签:
原文地址:http://www.cnblogs.com/zbw911/p/4259007.html