Cache Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Implementiert den Cache für eine Webanwendung. Diese Klasse kann nicht vererbt werden.
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
- Vererbung
-
Cache
- Implementiert
Beispiele
Das folgende Beispiel ist eine Seite, auf der Benutzer den Einem Element im Cache zugewiesenen Wert angezeigt werden und sie dann benachrichtigt, wenn das Element aus dem Cache entfernt wird. Es erstellt eine RemovedCallback
Methode, die über die Signatur des CacheItemRemovedCallback
Delegaten verfügt, um Benutzer zu benachrichtigen, wenn das Cacheelement entfernt wird, und verwendet die CacheItemRemovedReason Enumeration, um ihnen mitzuteilen, warum es entfernt wurde. Darüber hinaus wird die Cache.Item[] -Eigenschaft verwendet, um dem Cache Objekte hinzuzufügen und den Wert dieser Objekte abzurufen. In der AddItemToCache
-Methode wird die Cache.Add -Methode verwendet, um dem Cache ein Element hinzuzufügen. Um den CacheItemRemovedCallback
Delegaten zu verwenden, müssen Sie dem Cache mit dieser Methode oder der Cache.Insert Methode ein Element hinzufügen, damit ASP.NET automatisch die richtigen Methodenaufrufe ausführen können, wenn das Element entfernt wird. Die benutzerdefinierte RemoveItemFromCache
Methode verwendet die Cache.Remove -Methode, um das Element explizit aus dem Cache zu löschen, wodurch die RemovedCallback
-Methode aufgerufen wird.
Hinweis
Die Cache-Instanz, auf die der folgende Codeausschnitt zugreift, ist ein Element des Page Objekts, das dieses Beispiel erbt.
<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>
Hinweise
Eine Instanz dieser Klasse wird pro Anwendungsdomäne erstellt und bleibt gültig, solange die Anwendungsdomäne aktiv bleibt. Informationen zu einer Instanz dieser Klasse sind über die Cache
-Eigenschaft des HttpContext -Objekts oder die Cache
-Eigenschaft des Page -Objekts verfügbar.
Hinweis
Die Cache -Klasse ist nicht für die Verwendung außerhalb von ASP.NET-Anwendungen vorgesehen. Es wurde für die Verwendung in ASP.NET entwickelt und getestet, um Zwischenspeicherung für Webanwendungen bereitzustellen. Verwenden Sie für andere Arten von Anwendungen, z. B. Konsolenanwendungen oder Windows Forms-Anwendungen, die ObjectCache -Klasse.
Konstruktoren
Cache() |
Initialisiert eine neue Instanz der Cache-Klasse. |
Felder
NoAbsoluteExpiration |
Wird im |
NoSlidingExpiration |
Wird als |
Eigenschaften
Count |
Ruft die Anzahl der Elemente im Cache ab. |
EffectivePercentagePhysicalMemoryLimit |
Ruft den Prozentsatz des physischen Arbeitsspeichers ab, der von einer Anwendung verbraucht werden kann, bevor ASP.NET damit beginnt, Elemente aus dem Cache zu entfernen. |
EffectivePrivateBytesLimit |
Ruft die Anzahl der Bytes ab, die für den Cache zur Verfügung steht. |
Item[String] |
Ruft das Element im Cache am angegebenen Schlüssel ab oder legt dieses fest. |
Methoden
Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Fügt dem Cache-Objekt das angegebene Element mit Abhängigkeiten, Ablauf- und Prioritätsrichtlinien sowie einem Delegaten hinzu, mit dem die Anwendung über das Entfernen des eingefügten Elements aus dem |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
Get(String) |
Ruft das angegebene Element aus dem Cache-Objekt ab. |
GetEnumerator() |
Ruft einen Wörterbuchenumerator ab, der für das Durchlaufen der Schlüsseleinstellungen und ihrer Werte im Cache verwendet wird. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
Insert(String, Object) |
Fügt ein Element mit einem Cacheschlüssel, der auf den Speicherort verweist, in das Cache-Objekt ein, wobei von der CacheItemPriority-Enumeration bereitgestellte Standardwerte verwendet werden. |
Insert(String, Object, CacheDependency) |
Fügt ein Objekt in den Cache ein, das Datei- oder Schlüsselabhängigkeiten besitzt. |
Insert(String, Object, CacheDependency, DateTime, TimeSpan) |
Fügt ein Objekt mit Abhängigkeiten und Ablaufrichtlinien in den Cache ein. |
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Fügt ein Objekt in das Cache-Objekt ein, einschließlich von Abhängigkeiten, Ablauf- und Prioritätsrichtlinien sowie einem Delegaten, mit dem die Anwendung über das Entfernen des eingefügten Elements aus |
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback) |
Fügt ein Objekt in das Cache-Objekt mit Abhängigkeiten, Ablaufrichtlinien sowie einem Delegaten ein, mit dem die Anwendung vor dem Entfernen des Elements aus dem Cache benachrichtigt werden kann. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Remove(String) |
Entfernt das angegebene Element aus dem Cache-Objekt der Anwendung. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IEnumerable.GetEnumerator() |
Gibt einen Enumerator zurück, der die Cache-Objektauflistung durchlaufen kann. |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |
Gilt für:
Threadsicherheit
Dieser Typ ist threadsicher.