Condividi tramite


Procedura: aggiungere elementi alla cache

Aggiornamento: novembre 2007

È possibile accedere agli elementi della cache dell'applicazione utilizzando l'oggetto Cache. Per aggiungere un elemento a tale cache è invece possibile utilizzare il metodo Insert dell'oggetto Cache. Tale metodo consente di aggiungere un elemento alla cache e dispone di diversi overload grazie ai quali è possibile aggiungere l'elemento con opzioni differenti per l'impostazione delle dipendenze, della scadenza e della notifica di rimozione. Se si utilizza il metodo Insert per aggiungere un elemento alla cache ed è già presente un elemento con lo stesso nome, quest'ultimo verrà sostituito.

Per aggiungere elementi alla cache è anche possibile utilizzare il metodo Add. Questo metodo consente di impostare le stesse opzioni del metodo Insert. Tuttavia, il metodo Add restituisce l'oggetto aggiunto alla cache. Se inoltre si utilizza il metodo Add, e nella cache è già presente un elemento con lo stesso nome, il metodo non lo sostituirà e non verrà generata alcuna eccezione.

Nelle procedure descritte in questo argomento vengono illustrate le seguenti modalità per l'aggiunta di elementi alla cache dell'applicazione:

  • Aggiunta di un elemento alla cache mediante l'impostazione diretta con la specifica di una chiave e di un valore.

  • Aggiunta di elementi alla cache mediante il metodo Insert.

  • Aggiunta di un elemento alla cache e di una dipendenza in modo da rimuovere l'elemento dalla cache quando la dipendenza cambia. È possibile impostare le dipendenze in base ad altri elementi della cache, a file e a più oggetti.

  • Aggiunta di un elemento alla cache con criteri di scadenza. Oltre a impostare una dipendenza dell'elemento, è possibile impostare l'elemento in modo che scada dopo un determinato periodo di tempo (scadenza variabile) o a un'ora specifica (scadenza assoluta). Si può definire una scadenza assoluta o una scadenza variabile, ma non entrambe.

  • Aggiunta di un elemento alla cache e definizione della priorità relativa dell'elemento memorizzato nella cache. In .NET Framework le priorità relative consentono di determinare gli elementi della cache da rimuovere, tenendo presente che elementi con priorità più bassa vengono rimossi dalla cache prima di quelli con priorità più alta.

  • Aggiunta di un elemento mediante la chiamata del metodo Add.

Oltre alle dipendenze mostrate, è possibile creare una dipendenza da una tabella SQL Server o basata su una dipendenza personalizzata. Per ulteriori informazioni, vedere Cenni preliminari sull'inserimento nella cache in ASP.NET e Inserimento nella cache in ASP.NET con la classe SqlCacheDependency.

È anche possibile fare in modo che la cache dell'applicazione invii una notifica all'applicazione in seguito alla rimozione dell'elemento dalla cache, utilizzando il delegato CacheItemRemovedCallback. Per un esempio completo, vedere Procedura: notificare all'applicazione la rimozione di un elemento dalla cache.

Per aggiungere un elemento alla cache impostandolo direttamente mediante la specifica di una chiave e di un valore

  • Aggiungere elementi alla cache nello stesso modo in cui si aggiungono elementi a un dizionario, ovvero specificando la chiave e il valore dell'elemento.

    Nell'esempio di codice riportato di seguito viene aggiunto un elemento denominato CacheItem1 all'oggetto Cache:

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

Per aggiungere elementi alla cache utilizzando il metodo Insert

  • Chiamare il metodo Insert, passando la chiave e il valore dell'elemento da aggiungere.

    Nell'esempio di codice riportato di seguito viene aggiunta una stringa con il nome CacheItem2:

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

Per aggiungere un elemento alla cache mediante la specifica di una dipendenza

  • Chiamare il metodo Insert, passando a quest'ultimo un'istanza dell'oggetto CacheDependency

    Nell'esempio di codice riportato di seguito viene aggiunto un elemento denominato CacheItem3 dipendente da un altro elemento nella cache denominato 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))
    

    Nell'esempio di codice riportato di seguito viene illustrato un elemento denominato CacheItem4 aggiunto alla cache e con una dipendenza di file impostata sul file denominato 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")))
    

    Nell'esempio di codice riportato di seguito viene illustrata la creazione di più dipendenze. Viene aggiunta una dipendenza di chiave da un altro elemento nella cache denominato CacheItem1 e una dipendenza di file dal file denominato 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)
    

Per aggiungere un elemento alla cache con criteri di scadenza

  • Chiamare il metodo Insert, passando a quest'ultimo una scadenza assoluta o variabile.

    Nell'esempio di codice riportato di seguito viene aggiunto un elemento alla cache con una scadenza assoluta pari a 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)
    

    Nell'esempio di codice riportato di seguito viene aggiunto un elemento alla cache con una scadenza variabile pari a 10 minuti:

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

Per aggiungere alla Cache un elemento con le impostazioni di priorità

  • Chiamare il metodo Insert, specificando un valore dell'enumerazione CacheItemPriority.

    Nell'esempio di codice riportato di seguito viene aggiunto un elemento alla cache con un valore di priorità pari a 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)  
    

Per aggiungere un elemento alla cache utilizzando il metodo Add

  • Chiamare il metodo Add che restituisce un oggetto che rappresenta l'elemento.

    Nell'esempio di codice riportato di seguito viene aggiunto un elemento alla cache denominato CacheItem9 e il valore della variabile CachedItem9 viene impostato in modo da corrispondere all'elemento aggiunto.

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

Vedere anche

Attività

Procedura: eliminare gli elementi dalla cache in ASP.NET

Procedura: notificare all'applicazione la rimozione di un elemento dalla cache

Procedura: recuperare i valori degli elementi memorizzati nella cache

Concetti

Cenni preliminari sull'inserimento nella cache in ASP.NET

Memorizzazione nella cache dei dati dell'applicazione

Inserimento nella cache in ASP.NET con la classe SqlCacheDependency