Влияние статических свойств в веб-контексте

StackOverflow https://stackoverflow.com/questions/242904

  •  04-07-2019
  •  | 
  •  

Вопрос

Мне нужно изменить статическое свойство объекта в нашем веб-приложении. Свойство имеет значение по умолчанию, которое жестко запрограммировано в объекте. Если я изменяю статическое свойство в моем Application_Start, это меняет палку:

A) Навсегда (ну, пока приложение не будет переработано)

B) До тех пор, пока объект не станет GC, он будет повторно инициализирован следующим средством доступа

C) Зависит

Обратите внимание, что свойство, которое я буду устанавливать, это просто строка

Это было полезно?

Решение

Область действия статической переменной - это ее AppDomain. Так что нет, он не будет собирать мусор, но если AppDomain будет переработан (что может произойти изрядно в ASP.NET), вы получите " новый " статическая переменная, эффективно.

Другие советы

Исходя из моего опыта работы с нашими веб-приложениями, ответ: А. Насколько я знаю, статический класс никогда не будет GCed, он живет в течение всего процесса (в данном случае, работник ASP.NET процесс)

Перейти на A) Переменная экземпляра приложения

Для хранения контекста обратитесь к httpContext.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top