Использование System.Web.Caching.Cache

Я пытаюсь использовать 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' является "типом", но используется как "переменная"

Ответы

Ответ 1

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

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

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

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

Ответ 2

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

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

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