c# - HttpModule 和静态类,多个请求共享同一个静态数据吗?

标签 c# httpmodule

我已经编写了一个 ASP.NET HttpModule 并且我有一个静态帮助器类,用于在请求的生命周期内加载和存储配置数据。

由于静态构造函数必须是无参数的,所以我有一个静态的 SetConfigName 方法,我在开始处理 HttpRequest 时调用它。

    public static void SetConfigName (string configName)
    {
        // load data specific to given configName
    }

还有静态的 Get() 方法,稍后在处理 HttpRequest 期间调用。

每个请求加载的配置数据可能不同(基于 URL 中的值),因此我希望在我调用 SetConfigName 后其他请求共享静态数据。

那么问题来了,是多个请求共享相同的静态数据,还是每个新的请求都得到一个单独的静态类副本? (如果数据是共享的,如何避免它?是使它成为非静态类的唯一选择吗?)

(顺便说一下,我不使用 global.asax。)

最佳答案

静态数据在请求之间共享。 要为 1 个请求存储静态数据,您应该使用 HttpContext.Current.Items。

关于c# - HttpModule 和静态类,多个请求共享同一个静态数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1144284/

相关文章:

c# - .Net 中不支持的类型异常

c# - C# 窗体中的点击

c# - 如何将数据作为序列化对象插入数据库

iis-6 - IIS6 + HttpModule:此操作需要IIS集成管道模式

asp.net - 调用 HttpContext.RewritePath() 后如何获取原始 url

c# - HttpModule 和 WCF (AspNetCompatibilityRequirementsMode.Allowed)

javascript - 在 Windows 窗体中单击 CefSharp 浏览器中的按钮

c# - 简单企业库控制台应用程序拒绝编译

c# - HttpModule、Response.Filter 和图像未显示

performance - ASP.NET Web API StreamContent 与 IIS 静态文件处理程序