c# - ¿Cómo usar System.Web.Caching en asp.net?
asp.net-4.5 (1)
Tengo una clase que se parece a esto:
using System.Collections.Generic;
using System.Web.Caching;
public static class MyCache
{
private static string cacheKey = "mykey";
public static Dictionary<string, bool> GetCacheValue(bool bypassCache)
{
var settings = Cache[cacheKey] as Dictionary<string, bool>; // error on this line
// ...etc...
return settings
}
}
El problema que tengo es que esto no se compila. El compilador dice que el Cache
no se puede usar de la forma en que lo hago. Aquí está el mensaje:
''System.Web.Caching.Cache'' is a ''type'' but is used like a ''variable''
Esto me deja perplejo. He buscado en Google la API de caché de ASP.NET y he encontrado muchos ejemplos de Cache
se utilizan de esta manera. Aquí está uno de esos ejemplos:
// http://www.4guysfromrolla.com/articles/100902-1.aspx
value = Cache("key")
- or -
value = Cache.Get("key")
Cuando intento usar Cache.Get()
recibo otro error que dice que no es un método estático.
Evidentemente necesito inicializar una instancia de Cache
. ¿Es esta la forma correcta de usar esta API? Una pregunta de seguimiento es: ¿la información almacenada en caché persiste en todas las instancias?
Gracias por tu ayuda.
System.Web.Caching.Cache
es una clase: se ven personas que usan una propiedad llamada Cache
que es una instancia de System.Web.Caching.Cache
. Si lo está utilizando fuera de una clase que le proporciona la propiedad de Cache
, acceda a él usando System.Web.HttpRuntime.Cache
:
var settings = System.Web.HttpRuntime.Cache[cacheKey] as Dictionary<string, bool>;