System.Web.Caching.Cache
es el tipo que implementa la memoria caché para una aplicación web. HttpContext.Current.Cache
es solo un contenedor y devuelve HttpRuntime.Cache
que no es más que una instancia de System.Web.Caching.Cache
.
actualización
Consulte Is it OK to use HttpRuntime.Cache outside ASP.NET applications? para su segunda parte.
Actualización: ¿Por qué HttpRuntime.Cache necesita ser envuelto?
En mi opinión personal, HttpContext
es del tipo que se pasa a IHttpHandler.ProcessPostBack
y HttpApplication
expone HttpContext
que se pasa IHttpModule.Init
. Esto aseguraría que todas las dependencias sean inyectadas usando la inyección de Método. Por lo tanto, introdujeron un nivel de indirección.
Los manipuladores y módulos no deben tener en cuenta el HttpRuntime en el que están alojados. Mientras se encuentre en una página ASP.NET, es recomendable usar this.Page.Cache
en su lugar HttpContext.Current.Cache
o HttpRuntime.Cache
, ya que usar HttpContext.Current implicaría una sobrecarga para resolver el hilo actual y HttpRuntime.Cache
crearía una dependencia externa. Page.Cache
se inicializa con HttpContext.Cache
que se pasa a ProcessRequest
¿Por qué 'HttpRuntime.Cache' necesita ser envuelto? –
Actualizado mi respuesta – Ramesh