Использование System.Web.Caching.Cache - PullRequest
15 голосов
/ 22 июля 2011

Я пытаюсь использовать кэш, но получаю ошибку ниже.Как правильно использовать Cache?

protected void Page_Load(object sender, EventArgs e) {
x = System.DateTime.Now.ToString();
 if (Cache["ModifiedOn"] == null) { // first time so no key/value in Cache
    Cache.Insert("ModifiedOn", x); // inserts the key/value pair "Modified On", x            
 }
 else { // Key/value pair already exists in the cache
     x = Cache["ModifiedOn"].ToString();
 } }

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

Ответы [ 2 ]

43 голосов
/ 22 июля 2011

System.Web.Caching.Cache: это реализация кэширования .NET.

System.Web.HttpContext.Current.Cache: это экземпляр той реализации, которая находится в домене приложения.

Я думаю, что вы хотите использовать второй, если вы не в коде позади страницы aspx. Используйте Cache, если вы находитесь в коде страницы aspx.

Вы также можете использовать Page.Cache.Insert напрямую, который имеет ссылку на System.Caching.Cache через объект страницы. Все это указывает на один и тот же кеш приложения, который является глобальным для всех пользователей.

0 голосов
/ 15 марта 2016

Где-нибудь в этом классе хранится HttpContext, когда он инициализируется новым или с помощью Init() метода

Затем используйте HttpContext.Current.Cache

Или: создайте методы для чтения изаписать в кэш с параметром currentcache и документально подтвердить это с помощью примера кода, где он вызывается с HttpContext.Current.Cache

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