Доступ к состоянию приложения снаружи страницы - PullRequest
5 голосов
/ 02 сентября 2010

Я пытаюсь получить доступ к Application State из служебного класса в веб-приложении, но я не уверен, что это лучший способ сделать это.Я искал статический член, но он бесполезен (я думал где-то по аналогии с HttpContext.Current).

Лучшее решение, которое я нашел на данный момент, это иметь член в служебном классе, который будетбыть инициализированным в событии Application_Start файла Global.asax.cs (я могу получить его из этого приложения), но есть ли риск того, что «что-то» произойдет с этой ссылкой (меня не волнует перезапуск приложения, когда яищу только функции кеша)?

Ответы [ 4 ]

9 голосов
/ 02 сентября 2010

Мне кажется, я понял!

HttpContext.Current.Application
1 голос
/ 02 сентября 2010

Невозможно получить доступ к состоянию приложения извне HTTTPContext. Использование Application_Start является предпочтительным способом инициализации «глобальных» значений. Вы также можете использовать класс Cache для той же цели. Cache предлагает функции истечения срока действия члена, которые могут быть полезны для данных, которые изменяются в результате таких событий, как изменение значения файла или базы данных.

0 голосов
/ 02 сентября 2010

Вы можете просто создать статический член класса:

public class MyGlobalCache
{
    public static string SomeValue{get;set;}
}

Это сохраняется на уровне приложения, что означает, что вы получаете ту же функциональность состояния приложения.Статический член будет доступен на всех уровнях (веб-страницы и не веб-страницы).

0 голосов
/ 02 сентября 2010

Попробуйте

System.Web.HttpRuntime
...