7
在我的web应用程序中,我使用的是System.Web.HttpContext.Current
,它表示当前的命中上下文,我想知道它是如何从任何地方访问的,直到我注意到它是一个static
成员! 虽然它的静态成员如何保持它的价值,而如果两个请求几乎在同一时间收到。 像下面这样:System.Web.HttpContext.Current在请求之间是静态的
#Req1----> | set the value of the static field to req1
#Req2----> | set the value of the static field to req2
#Req1 | use that static its supposed to be req2 while its req1
我错过理解的东西,或在它里面一招还是什么?
先生,非常感谢您的回答!现在一切都变得更加清晰了,但是我有一个问题,你用'LogicalCallContext'实现了什么意思,并且再次感谢你提供了非常有用的答案。 – Hilmi 2013-03-23 14:35:46
当您使用Reflector撬开属性时,您会发现该值不是来自静态线程本地字段,而是来自CallContext,而来自LogicalCallContext。他们是我不了解的低级基础课。它们实质上是每个线程的数据结构(但不完全)。我认为ASP.NET或WCF中的每个请求都有一个这样的调用上下文,但我可能是错误的。 – usr 2013-03-23 14:44:25
非常感谢先生,我会进一步搜索这个主题,但你的答案已经完成!再次感谢。 – Hilmi 2013-03-23 14:47:12