Состояние приложения доступа снаружи страницы
-
26-09-2019 - |
Вопрос
Я пытаюсь получить доступ к состоянию приложения из класса Utility в веб-приложении, но я не уверен в лучшем способе сделать это. Я искал статический член, но нет ничего использования (я думал где-то вдоль линий httpcontext.courent).
Лучшее решение, которое я нашел до сих пор, это иметь члена в классе Utility, который будет инициализирован в событии Application_Start of Global.Asax.cs (я могу получить его от этого. Используйте там), но будет ли какой-то риск «Происходит с этой ссылкой (мне не волнует приложение, которое перезапущено, так как я ищу только функциональность кеша)?
Решение
Я думаю, что получил это!
HttpContext.Current.Application
Другие советы
Нет возможности получить доступ к состоянию приложения снаружи HTTTPContext по дизайну. Использование Application_Start является предпочтительным способом инициализации «глобальных» значений. Вы также можете использовать Cache
класс для той же цели. Cache
Предлагает функции срока действия участников, которые могут быть полезны для данных, которые меняются из-за таких событий, как файл или значение базы данных.
Пытаться
System.Web.HttpRuntime
Вы можете просто создать участник статического класса:
public class MyGlobalCache
{
public static string SomeValue{get;set;}
}
Это хранится на уровне приложений, что означает, что вы получаете ту же функциональность состояния приложения. Статический член будет доступен во всех слоях (веб-страницы и веб-страницы).