Compartir a través de


Cómo: Agregar elementos a caché

Actualización: noviembre 2007

Puede tener acceso a los elementos en la caché de la aplicación utilizando el objeto Cache. Puede agregar un elemento a la caché de la aplicación utilizando el método Insert del objeto Cache. El método agrega un elemento a la caché y tiene varias sobrecargas que le permiten agregar el elemento con diferentes opciones para establecer dependencias, vencimientos y notificaciones de eliminación. Si utiliza el método Insert para agregar un elemento a la caché y ya existe un elemento con el mismo nombre, se reemplaza el elemento de la caché.

También puede agregar los elementos a la caché utilizando el método Add. Este método le permite configurar todas las opciones iguales que el método Insert; sin embargo, el método Add devuelve el objeto que agregó a la caché. Además, si utiliza el método Add y ya existe un elemento con el mismo nombre en la caché, el método no reemplazará el elemento y no producirá una excepción.

Los procedimientos en este tema muestran las siguientes maneras de agregar elementos a la caché de la aplicación:

  • Agregar un elemento a la caché estableciendo directamente el elemento a través de la clave y valor.

  • Agregar elementos a la caché utilizando el método Insert.

  • Agregar un elemento a la caché y agregar una dependencia para que el elemento se quite de la caché cuando la dependencia cambia. Puede establecer dependencias basadas en otros elementos de caché, en archivos, y en varios objetos.

  • Agregar un elemento a la caché con directivas de caducidad. Además de poder establecer la dependencia de un elemento, puede establecer su caducidad después de cierto tiempo (un plazo de caducidad) o a una hora específica (una caducidad absoluta). Puede definir una caducidad absoluta o un plazo de caducidad, pero no ambos.

  • Agregar un elemento a la caché y definir la prioridad relativa del elemento almacenado en memoria caché. Las prioridades relativas ayudan a .NET Framework a determinar los elementos de la caché que se van a quitar; los elementos de menor prioridad se quitan de la caché antes que los elementos de prioridad más alta.

  • Agregar un elemento llamando al método Add.

Además de las dependencias que aquí se muestran, puede crear una dependencia en una tabla SQL Server o basada en una dependencia personalizada. Para obtener más información, vea Información general sobre el almacenamiento en caché en ASP.NET y Almacenar en caché en ASP.NET con la clase SqlCacheDependency.

También puede hacer que la caché de la aplicación notifique a su aplicación cuando se quita el elemento de la caché, utilizando el delegado CacheItemRemovedCallback. Para obtener un ejemplo completo, vea Cómo: Notificar a una aplicación cuando se quita un elemento de la caché.

Para agregar un elemento a la caché estableciendo directamente el elemento a través de la clave y valor

  • Agregue elementos a la caché tal como los agregaría a un diccionario: con su clave y un valor.

    El siguiente ejemplo de código agrega un elemento denominado CacheItem1 al objeto Cache:

    Cache["CacheItem1"] = "Cached Item 1";
    
    Cache("CacheItem1") = "Cached Item 1"
    

Para agregar elementos a la caché mediante el método Insert

  • Llame al método Insert, pasando la clave y el valor del elemento que se va a agregar.

    El ejemplo de código siguiente agrega una cadena bajo el nombre CacheItem2:

    Cache.Insert("CacheItem2", "Cached Item 2");
    
    Cache.Insert("CacheItem2", "Cached Item 2")
    

Para agregar un elemento a la caché especificando una dependencia

  • Llame al método Insert, pasándole una instancia del objeto CacheDependency

    El siguiente ejemplo de código agrega un elemento denominado CacheItem3 que es dependiente de otro elemento en la caché denominado CacheItem2:

    string[] dependencies = { "CacheItem2" };
    Cache.Insert("CacheItem3", "Cached Item 3",
        new System.Web.Caching.CacheDependency(null, dependencies));
    
    Dim dependencies As String() = {"CacheItem2"}
    Cache.Insert("CacheItem3", "Cached Item 3", _
        New System.Web.Caching.CacheDependency( _
        Nothing, dependencies))
    

    El ejemplo de código siguiente muestra un elemento denominado CacheItem4 que se ha agregado a la caché y que tiene un conjunto de dependencias de archivos en el archivo denominado XMLFile.xml:

    Cache.Insert("CacheItem4", "Cached Item 4",
        new System.Web.Caching.CacheDependency(
        Server.MapPath("XMLFile.xml")));
    
    Cache.Insert("CacheItem4", "Cached Item 4", _
        New System.Web.Caching.CacheDependency( _
        Server.MapPath("XMLFile.xml")))
    

    El siguiente ejemplo de código muestra cómo crear varias dependencias. Agrega una dependencia clave en otro elemento en la caché denominado CacheItem1 y una dependencia de archivos en el archivo denominado XMLFile.xml.

    System.Web.Caching.CacheDependency dep1 = 
        new System.Web.Caching.CacheDependency(Server.MapPath("XMLFile.xml"));
    string[] keyDependencies2 = { "CacheItem1" };
    System.Web.Caching.CacheDependency dep2 = 
        new System.Web.Caching.CacheDependency(null, keyDependencies2);
    System.Web.Caching.AggregateCacheDependency aggDep = 
        new System.Web.Caching.AggregateCacheDependency();
    aggDep.Add(dep1);
    aggDep.Add(dep2);
    Cache.Insert("CacheItem5", "Cached Item 5", aggDep);
    
    Dim dep1 As CacheDependency = _
        New CacheDependency(Server.MapPath("XMLFile.xml"))
    Dim keyDependencies2 As String() = {"CacheItem1"}
    Dim dep2 As CacheDependency = _
        New System.Web.Caching.CacheDependency(Nothing, _
        keyDependencies2)
    Dim aggDep As AggregateCacheDependency = _
        New System.Web.Caching.AggregateCacheDependency()
    aggDep.Add(dep1)
    aggDep.Add(dep2)
    Cache.Insert("CacheItem5", "Cached Item 5", aggDep)
    

Para agregar un elemento a la caché con directivas de caducidad

  • Llame al método Insert, pasándole una hora de caducidad absoluta o un plazo de tiempo.

    El siguiente ejemplo de código agrega un elemento a la caché con una caducidad absoluta de un minuto:

    Cache.Insert("CacheItem6", "Cached Item 6",
        null, DateTime.Now.AddMinutes(1d), 
        System.Web.Caching.Cache.NoSlidingExpiration);
    
    Cache.Insert("CacheItem6", "Cached Item 6", _
        Nothing, DateTime.Now.AddMinutes(1.0), _
        TimeSpan.Zero)
    

    El siguiente ejemplo de código agrega un elemento a la caché con un plazo de caducidad de 10 minutos:

    Cache.Insert("CacheItem7", "Cached Item 7",
        null, System.Web.Caching.Cache.NoAbsoluteExpiration,
        new TimeSpan(0, 10, 0));
    
    Cache.Insert("CacheItem7", "Cached Item 7", _
        Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _
        New TimeSpan(0, 10, 0))
    

Para agregar a la caché un elemento con nivel de prioridad

  • Llame al método Insert, especificando un valor de la enumeración CacheItemPriority.

    El siguiente ejemplo de código agrega un elemento a la caché con un valor de prioridad de High:

    Cache.Insert("CacheItem8", "Cached Item 8",
        null, System.Web.Caching.Cache.NoAbsoluteExpiration,
        System.Web.Caching.Cache.NoSlidingExpiration,
        System.Web.Caching.CacheItemPriority.High, null);
    
    Cache.Insert("CacheItem8", "Cached Item 8", _
        Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _
        System.Web.Caching.Cache.NoSlidingExpiration, _
        System.Web.Caching.CacheItemPriority.High, _
        Nothing)  
    

Para agregar un elemento a la caché mediante el método Add

  • Llame al método Add, que devuelve un objeto que representa el elemento.

    El siguiente ejemplo de código agrega un elemento a la caché denominado CacheItem9 y establece el valor de la variable CachedItem9 para que sea el elemento que se agregó.

    string CachedItem9 = (string)Cache.Add("CacheItem9",
        "Cached Item 9", null,
        System.Web.Caching.Cache.NoAbsoluteExpiration,
        System.Web.Caching.Cache.NoSlidingExpiration, 
        System.Web.Caching.CacheItemPriority.Default,
        null);
    
    Dim CachedItem9 As String = CStr(Cache.Add("CacheItem9", _
        "Cached Item 9", Nothing, _
        System.Web.Caching.Cache.NoAbsoluteExpiration, _
        System.Web.Caching.Cache.NoSlidingExpiration, _
        System.Web.Caching.CacheItemPriority.Default, _
        Nothing))
    

Vea también

Tareas

Cómo: Eliminar elementos de la caché en ASP.NET

Cómo: Notificar a una aplicación cuando se quita un elemento de la caché

Cómo: Recuperar valores de elementos almacenados en caché

Conceptos

Información general sobre el almacenamiento en caché en ASP.NET

Almacenar en caché datos de la aplicación

Almacenar en caché en ASP.NET con la clase SqlCacheDependency