пытается кэшировать данные в веб-сервисе C # - PullRequest
1 голос
/ 30 ноября 2011

Я пытаюсь использовать объект System.Web.Caching.Cache. но когда я пишу Cache [ключ], я получаю синтаксическую ошибку:

System.Web.Caching.Cache является типом, но используется как переменная

Можете ли вы помочь мне решить проблему? Я использую фреймворк 4.

1 Ответ

2 голосов
/ 30 ноября 2011

Я думаю, что вы хотите использовать:

string value = HttpContext.Current.Cache[key] as string;

или

HttpContext.Current.Cache.Insert(key, value);

или даже это - но я рекомендую метод .Insert () выше, потому что вы можете установить время ожидания:

HttpContext.Current.Cache[key] = value;

Причина, по которой .NET жалуется, заключается в том, что вы пытаетесь использовать класс как объект (отсюда и сообщение). Свойство Cache HttpContext.Current вернет объект класса System.Web.Caching.Cache, который содержит текущий кэш для приложения веб-службы (в отличие от другого элемента кэша или определения типа для всего кэша). элементы).

ПРИМЕЧАНИЕ: Немного об этом помните, что если ваш код будет выполняться на компьютерах с параллельным доступом (т. Е. На ферме серверов или в «облачной» архитектуре), кэш содержит в одной машине будет отличаться от той, что содержится в другой машине. Это будет хорошо, если вы просто создаете вывод только для чтения для быстрого ответа и не слишком беспокоитесь, когда он утилизируется, но если вы полагаетесь на очистку кэша для обновлений выходных данных вашей службы, так что вы можете захотеть использовать другой способ хранения ваших данных, так как вам может быть трудно передать сообщение на другие машины, когда кэш должен быть очищен на всех из них.

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