其他分享
首页 > 其他分享> > HttpModule和静态类,多个请求共享相同的静态数据吗?

HttpModule和静态类,多个请求共享相同的静态数据吗?

作者:互联网

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

由于静态构造函数必须是无参数的,因此我有一个静态SetConfigName方法,该方法在HttpRequest处理开始时调用.

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

还有静态的Get()方法,这些方法稍后将在HttpRequest的处理过程中调用.

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

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

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

解决方法:

多个请求确实共享相同的静态数据.解决该问题的唯一方法是始终根据当前请求返回信息,而不仅仅是返回保存的静态数据.如果这不是一个选择,那么是的,您需要将其设置为非静态类.

标签:httpmodule,c
来源: https://codeday.me/bug/20191107/2003422.html