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
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 tipoCacheItemRemovedCallback
.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.
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 staticareason
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 ereason
di tipo CacheItemRemovedReason.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);
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 valoreSource
. La variabileonRemove
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