Я написал ASP.NET HttpModule и у меня есть статический вспомогательный класс, который используется для загрузки и хранения данных конфигурации в течение срока действия запроса.
Поскольку статические конструкторы должны быть без параметров, у меня есть статический метод SetConfigName, который я вызываю в начале обработки запроса HttpRequest.
public static void SetConfigName (string configName)
{
// load data specific to given configName
}
Существуют также статические методы Get (), которые вызываются позже во время обработки HttpRequest.
Загружаемые данные конфигурации могут быть разными для каждого запроса (в зависимости от значений в URL), поэтому я не хочу, чтобы другие запросы передавали статические данные после вызова SetConfigName. *
Таким образом, вопрос заключается в том, разделяют ли несколько запросов одни и те же статические данные, или каждый новый запрос получает отдельную копию статического класса? (И если данные являются общими, как их избежать? Является ли единственной альтернативой сделать их нестатическим классом?)
(Кстати, я не использую global.asax.)