Cache Classe

Definizione

Implementa la cache per un'applicazione Web. La classe non può essere ereditata.

public ref class Cache sealed : System::Collections::IEnumerable
public sealed class Cache : System.Collections.IEnumerable
type Cache = class
    interface IEnumerable
Public NotInheritable Class Cache
Implements IEnumerable
Ereditarietà
Cache
Implementazioni

Esempio

L'esempio seguente è una pagina che mostra agli utenti il valore assegnato a un elemento nella cache e quindi invia una notifica quando l'elemento viene rimosso dalla cache. Crea un RemovedCallback metodo, che ha la firma del CacheItemRemovedCallback delegato, per notificare agli utenti quando l'elemento della cache viene rimosso e usa l'enumerazione CacheItemRemovedReason per indicare il motivo per cui è stato rimosso. Usa inoltre la Cache.Item[] proprietà per aggiungere oggetti alla cache e recuperare il valore di tali oggetti. AddItemToCache Nel metodo usa il Cache.Add metodo per aggiungere un elemento alla cache. Per usare il delegato CacheItemRemovedCallback, è necessario aggiungere un elemento alla cache con questo metodo o il metodo /Cache.Insert, in modo che ASP.NET possa effettuare automaticamente le chiamate al metodo appropriato quando l'elemento viene rimosso. Il metodo personalizzato RemoveItemFromCache usa il Cache.Remove metodo per eliminare in modo esplicito l'elemento dalla cache, causando la chiamata del RemovedCallback metodo.

Note

L'istanza di Cache a cui si accede dal frammento di codice seguente è un membro dell'oggetto Page ereditato da questo esempio.

<html>
 <Script runat=server language="C#">
// <snippet2>
    static bool itemRemoved = false;
    static CacheItemRemovedReason reason;
    CacheItemRemovedCallback onRemove = null;

    public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){
      itemRemoved = true;
      reason = r;
    }
// </snippet2>

// <snippet3>
    public void AddItemToCache(Object sender, EventArgs e) {
        itemRemoved = false;

        onRemove = new CacheItemRemovedCallback(this.RemovedCallback);

        if (Cache["Key1"] == null)
          Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
    }
// </snippet3>

// <snippet4>
    public void RemoveItemFromCache(Object sender, EventArgs e) {
        if(Cache["Key1"] != null)
          Cache.Remove("Key1");
    }
// </snippet4>
 </Script>
 <body>
  <Form runat="server">
   <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
   <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
  <% if (itemRemoved) {
        Response.Write("RemovedCallback event raised.");
        Response.Write("<BR>");
        Response.Write("Reason: <B>" + reason.ToString() + "</B>");
     }
     else {
// <snippet5>
        Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");
// </snippet5>
     }
  %>
 </body>
</html>
<%@ Page Language="VB" %>

<html>
 <Script runat=server>
' <snippet2>
    Shared itemRemoved As boolean = false
    Shared reason As CacheItemRemovedReason
    Dim onRemove As CacheItemRemovedCallback

    Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason)
      itemRemoved = true
      reason = r
    End Sub
' </snippet2>

' <snippet3>
    Public Sub AddItemToCache(sender As Object, e As EventArgs)
        itemRemoved = false

        onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)

        If (IsNothing(Cache("Key1"))) Then
          Cache.Add("Key1", "Value 1", Nothing, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove)
        End If
    End Sub
' </snippet3>

' <snippet4>
    Public Sub RemoveItemFromCache(sender As Object, e As EventArgs)
        If (Not IsNothing(Cache("Key1"))) Then
          Cache.Remove("Key1")
        End If
    End Sub
' </snippet4>
 </Script>

 <body>
  <Form runat="server">
    <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
    <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
<%
If (itemRemoved) Then
    Response.Write("RemovedCallback event raised.")
    Response.Write("<BR>")
    Response.Write("Reason: <B>" + reason.ToString() + "</B>")
Else
' <snippet5>
    Response.Write("Value of cache key: <B>" + Server.HtmlEncode(CType(Cache("Key1"),String)) + "</B>")
' </snippet5>
End If
%>
 </body>
</html>

Commenti

Un'istanza di questa classe viene creata per ogni dominio dell'applicazione e rimane valida finché il dominio dell'applicazione rimane attivo. Le informazioni su un'istanza di questa classe sono disponibili tramite la Cache proprietà dell'oggetto HttpContext o la Cache proprietà dell'oggetto Page .

Note

La classe Cache non è destinata all'uso all'esterno delle applicazioni ASP.NET. È stato progettato e testato per l'uso in ASP.NET per fornire la memorizzazione nella cache per le applicazioni Web. Per altri tipi di applicazioni, ad esempio applicazioni console o applicazioni Windows Forms, usare la classe ObjectCache.

Costruttori

Nome Descrizione
Cache()

Inizializza una nuova istanza della classe Cache.

Campi

Nome Descrizione
NoAbsoluteExpiration

Utilizzato nel absoluteExpiration parametro in una Insert(String, Object) chiamata al metodo per indicare che l'elemento non deve mai scadere. Questo campo è di sola lettura.

NoSlidingExpiration

Usato come slidingExpiration parametro in una Insert(String, Object) chiamata al metodo o Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) per disabilitare le scadenze scorrevoli. Questo campo è di sola lettura.

Proprietà

Nome Descrizione
Count

Ottiene il numero di elementi archiviati nella cache.

EffectivePercentagePhysicalMemoryLimit

Ottiene la percentuale di memoria fisica che può essere utilizzata da un'applicazione prima che ASP.NET inizi a rimuovere elementi dalla cache.

EffectivePrivateBytesLimit

Ottiene il numero di byte disponibili per la cache.

Item[String]

Ottiene o imposta l'elemento della cache in corrispondenza della chiave specificata.

Metodi

Nome Descrizione
Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Aggiunge l'elemento specificato all'oggetto Cache con dipendenze, scadenza e criteri di priorità e un delegato che è possibile usare per notificare all'applicazione quando l'elemento inserito viene rimosso da Cache.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Get(String)

Recupera l'elemento specificato dall'oggetto Cache .

GetEnumerator()

Recupera un enumeratore dizionario usato per scorrere le impostazioni delle chiavi e i relativi valori contenuti nella cache.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Inserisce un oggetto nell'oggetto Cache con dipendenze, criteri di scadenza e priorità e un delegato che è possibile usare per notificare all'applicazione quando l'elemento inserito viene rimosso da Cache.

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

Inserisce un oggetto nell'oggetto Cache insieme a dipendenze, criteri di scadenza e un delegato che è possibile usare per notificare all'applicazione prima che l'elemento venga rimosso dalla cache.

Insert(String, Object, CacheDependency, DateTime, TimeSpan)

Inserisce un oggetto in Cache con dipendenze e criteri di scadenza.

Insert(String, Object, CacheDependency)

Inserisce un oggetto nell'oggetto Cache con dipendenze di file o chiavi.

Insert(String, Object)

Inserisce un elemento nell'oggetto con una chiave della Cache cache per fare riferimento alla relativa posizione, utilizzando i valori predefiniti forniti dall'enumerazione CacheItemPriority .

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Remove(String)

Rimuove l'elemento specificato dall'oggetto dell'applicazione Cache .

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IEnumerable.GetEnumerator()

Restituisce un enumeratore in grado di scorrere l'insieme di Cache oggetti.

Metodi di estensione

Nome Descrizione
AsParallel(IEnumerable)

Abilita la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un IEnumerable in un IQueryable.

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un IEnumerable al tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un IEnumerable in base a un tipo specificato.

Si applica a

Thread safety

Questo tipo è thread-safe.

Vedi anche