Cache Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 li notifica quando l'elemento viene rimosso dalla cache. Crea un RemovedCallback
metodo, con la firma del CacheItemRemovedCallback
delegato, per informare gli utenti quando l'elemento della cache viene rimosso e usa l'enumerazione CacheItemRemovedReason per indicare perché è stata rimossa. Inoltre, usa 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 CacheItemRemovedCallback
delegato, è necessario aggiungere un elemento alla cache con questo metodo o il Cache.Insert metodo, in modo che ASP.NET possa eseguire automaticamente le chiamate al metodo appropriato quando l'elemento viene rimosso. Il metodo personalizzato RemoveItemFromCache
usa il metodo per eliminare in modo esplicito l'elemento Cache.Remove dalla cache, causando l'richiamare il RemovedCallback
metodo.
Nota
L'istanza di Cache accessibile 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 fino a quando il dominio dell'applicazione rimane attivo. Le informazioni su un'istanza di questa classe sono disponibili tramite la Cache
proprietà dell'oggetto o la Cache
proprietà dell'oggetto HttpContextPage.
Nota
La Cache classe 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 ObjectCache classe .
Costruttori
Cache() |
Inizializza una nuova istanza della classe Cache. |
Campi
NoAbsoluteExpiration |
Viene utilizzato nel parametro |
NoSlidingExpiration |
Utilizzato come parametro |
Proprietà
Count |
Ottiene il numero di elementi archiviati nella cache. |
EffectivePercentagePhysicalMemoryLimit |
Ottiene la percentuale di memoria fisica utilizzabile da un'applicazione prima che ASP.NET avvii la rimozione di elementi dalla cache. |
EffectivePrivateBytesLimit |
Ottiene il numero di byte disponibili per la cache. |
Item[String] |
Recupera o imposta la voce di cache nella chiave specificata. |
Metodi
Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Aggiunge l'elemento specificato all'oggetto Cache con dipendenze e criteri di scadenza e priorità, nonché un delegato da utilizzare per notificare all'applicazione la rimozione dell'elemento inserito dalla |
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 di dizionari 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 l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
Insert(String, Object) |
Inserisce un elemento nell'oggetto Cache con una chiave di cache per fare riferimento alla relativa posizione, utilizzando i valori predefiniti forniti dall'enumerazione CacheItemPriority. |
Insert(String, Object, CacheDependency) |
Inserisce un oggetto nella Cache con dipendenze di file o chiave. |
Insert(String, Object, CacheDependency, DateTime, TimeSpan) |
Inserisce un oggetto nella Cache con dipendenze e criteri di scadenza. |
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Inserisce un oggetto nell'oggetto Cache con dipendenze e criteri di scadenza e priorità, nonché un delegato da utilizzare per notificare all'applicazione quando l'elemento inserito viene rimosso dalla |
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback) |
Inserisce un oggetto nell'oggetto Cache, insieme alle dipendenze, ai criteri di scadenza e a un delegato che è possibile utilizzare per inviare una notifica all'applicazione prima che l'elemento venga rimosso dalla cache. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Remove(String) |
Rimuove l'elemento specificato dall'oggetto Cache dell'applicazione. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IEnumerable.GetEnumerator() |
Restituisce un enumeratore che può scorrere l'insieme dell'oggetto Cache. |
Metodi di estensione
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |
Si applica a
Thread safety
Questo tipo è thread-safe.