2010-11-12 7 views
8

En ASP.NET, ¿hay alguna razón para no hacer un conjunto de funciones que Agregar/Quitar/Obtener del objeto Caché Estático?Haciendo que los métodos de acceso a la memoria caché estén estáticos

get() - sólo se pone el artículo, hay razón para no ser estática
Agregar(), remove() - He leído que añadir/borrar en la memoria caché tiene su propio mecanismo de bloqueo interno, para que puedan ser estático sin que yo cree mi propio bloqueo() {} envolviendo.

Respuesta

10

Ya se puede acceder en un contexto estático a través

HttpRuntime.Cache

El método de HttpContext.Current.Cache simplemente reenvía a este llamado de todos modos, aún invocando la HttpContext.Current.Cache pueden causar errores de ejecución si no está en el ciclo de vida donde HttpContext.Current está disponible.

Respondiendo a su pregunta:

Sí se puede usar esto para manejar eso. Usted tendría algo así como

public static class StaticCache 
{ 

    public static Add(object obj) 
    {   
     try {    
      HttpRuntime.Cache.Add(obj);    
     } 
     catch(Exception ex) { 
      //log or something    
     }   
    }  
} 

y su uso sería similar a

StaticCache.Add("bob");

+0

¿Estás diciendo que pueden ser estáticos desde HttpRuntime.Cache llamadas son estáticas? Mi pregunta era acerca de cómo poner las llamadas a caché en los métodos para que pueda hacer el registro, verificar errores, cambiar los tiempos de caducidad según sea necesario, etc. – eych

+1

Wow, no sabía que esto existía. Siempre acabo de utilizar 'HttpContext.Current.Cache' para acceder estáticamente. – Earlz

Cuestiones relacionadas