c# asp.net caching asp.net-4.5

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>;