Notifica all'applicazione dell'eliminazione di un elemento dalla cache

In ASP.NET viene fornito il delegato CacheItemRemovedCallback che definisce la firma da utilizzare quando si scrivono i gestori eventi necessari per rispondere quando viene eliminato un elemento dalla cache. In ASP.NET viene inoltre fornita l'enumerazione CacheItemRemovedReason, che può essere utilizzata per rendere i gestori eventi dipendenti dal motivo per il quale l'elemento viene eliminato.

Per inviare una notifica all'applicazione quando un elemento viene eliminato dalla cache

  1. Creare una variabile locale che genera l'evento per il delegato CacheItemRemovedCallback. Con il codice seguente, ad esempio, viene creata una variabile locale onRemove del tipo CacheItemRemovedCallback.

    private static CacheItemRemovedCallback onRemove = null;
    

    Nota   La variabile deve essere di questo tipo per essere utilizzata nel parametro onRemoveCallback del metodo Cache.Add o del metodo Cache.Insert, nel quarto passaggio.

  2. Creare un gestore eventi che gestisca la risposta quando l'elemento viene rimosso dalla cache. Nel codice seguente, ad esempio, viene impostata la variabile statica itemRemoved di tipo Boolean su true e la variabile statica reason di tipo CacheItemRemovedReason sul valore passato quando l'elemento viene rimosso dalla cache.

    Nota   È possibile utilizzare i membri dell'enumerazione CacheItemRemovedReason per creare codice condizionale per il metodo in questo passaggio.

    CacheItemRemovedReason reason;
    public void RemovedCallback(string key, object value, CacheItemRemovedReason callbackreason) {
          reason = r;
    }
    [Visual Basic]
    Dim reason As CacheItemRemovedReason
    Public Sub RemovedCallback(key As String, value As Object, reason As CacheItemRemovedReason)
          reason = r
    End Sub
    

    Nota   Questo gestore eventi deve utilizzare la stessa firma del delegato CacheItemRemovedCallback. Nel codice si presuppone che siano state create due variabili statiche: itemRemoved di tipo Boolean e reason di tipo CacheItemRemovedReason.

  3. Creare un'istanza del delegato CacheItemRemovedCallback che chiama il gestore eventi. Nel codice seguente viene chiamato il metodo creato nel secondo passaggio.

    onRemove = new CacheItemRemovedCallback(this.RemovedCallback);
    
  4. Aggiungere l'elemento alla Cache utilizzando il metodo Cache.Add o il metodo Cache.Insert. È necessario specificare la variabile locale, creata nel primo passaggio, in un parametro onRemoveCallback. Nel codice seguente viene utilizzato il metodo Insert per aggiungere un elemento alla cache con una chiave "MyData1" e un valore Source. La variabile onRemove viene definita nel parametro onRemoveCallback.

    Cache.Insert("MyData1", Source, null, DateTime.Now.AddMinutes(2), NoSlidingExpiration, CacheItemPriority.High, onRemove);
    

    Quando l'elemento aggiunto al quarto passaggio viene rimosso dalla Cache per qualsiasi motivo, viene chiamato il metodo RemovedCallback e il codice in esso contenuto viene utilizzato per eseguire il rendering del nuovo contenuto al client richiedente o per inviare una notifica all'applicazione nel modo prescelto.

    Per un esempio operativo completo, vedere la documentazione per il delegato CacheItemRemovedCallback.

Vedere anche

Memorizzazione nella cache dei dati dell'applicazione | Aggiunta di elementi alla Cache | Recupero dei valori degli elementi memorizzati nella cache | Eliminazione di elementi dalla Cache