Вопрос

Я пытаюсь получить доступ к состоянию приложения из класса 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;}
}

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

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