Использование 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