2009-02-17 5 views
13

Можно ли вызвать HttpContext.Current из статического класса и метода?HttpContext.Current, доступный в статических классах

Я хочу сохранить значение для каждого пользователя, но хочу иметь доступ к нему статическим образом.

например. Будет ли это работать?

public static class StaticClass 
{ 

    public static string SomeThing 
    { 
     get { return HttpContext.Current.Items["SomeItem"].ToString(); } 
    } 

} 

ответ

13

Да Вот один из способов, в которых было бы полезно, конечно, нить, на которой она называется в настоящее время должен быть обрабатывает запрос, чтобы сделать его полезным.

5

Почему бы вам не попробовать?

Да, это вполне возможно (хотя это не обязательно хороший дизайн), только не забудьте сослаться System.Web.dll в проекте и проверить HttpContext.Current для null в случае, если вы будете в конечном итоге работает в non-ASP.NET среде.

5

Да, это статический метод, поэтому вы можете называть его из любого места, где хотите. Как говорит Энтони, «текущий» контекст зависит от вызывающего потока, поэтому вам нужно убедиться, что вы используете правильный поток.

+0

Класс и свойства будут вызываться только с веб-страниц. Поэтому я предполагаю, что всегда буду использовать текущий контекст из правильной темы. Это правильно или я что-то упускаю? –

+2

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

+0

Прохладный, нет, я не. Приветствия Джон –

 Смежные вопросы

  • Нет связанных вопросов^_^