gpt4 book ai didi

asp.net - HttpContext.Current如何工作?

转载 作者:行者123 更新时间:2023-12-03 14:40:25 25 4
gpt4 key购买 nike

这是一个很难提出的问题。我想知道HttpContext.Current如何为每个请求分配一个唯一的实例(考虑到它是一个静态对象)?

谢谢!

最佳答案

Current不是静态变量,它不是static属性,而get属性只是返回当前Context的静态方法。

ASP.NET使用当前线程存储一些信息,您总是可以获取本地线程存储来存储仅在当前线程中是静态的信息,并且该信息只能由当前线程中的任何方法访问。

因此,ASP.NET将一些本地信息存储在http上下文在其中执行请求的应用程序的线程中,并且从任何地方调用Current都会获取本地线程数据并获取所需的信息。

您还可以查看[ThreadStatic]属性,该属性几乎以类似的方式执行操作。

更新资料

从ASP.NET 4.5及更高版本开始,当前HttpContext是通过CallContext而不是[ThreadStatic]传递的,因此上下文可以通过单个逻辑上下文(而不是当前线程)中的异步调用保持可用,因为每个异步调用可能会在不同的线程中结束。

关于asp.net - HttpContext.Current如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com