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
Im folgenden Beispiel handelt es sich um eine Seite, die Benutzern den Wert anzeigt, der einem Element im Cache zugewiesen ist, und benachrichtigt sie dann, wenn das Element aus dem Cache entfernt wird. Es erstellt eine RemovedCallback
Methode, die die Signatur des CacheItemRemovedCallback
Stellvertretungs hat, um Benutzer zu benachrichtigen, wenn das Cacheelement entfernt wird, und es verwendet die CacheItemRemovedReason Enumeration, um sie zu informieren, warum es entfernt wurde. Darüber hinaus wird die Cache.Item[] Eigenschaft verwendet, um Objekte zum Cache 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 die CacheItemRemovedCallback
Stellvertretung zu verwenden, müssen Sie dem Cache mit dieser Methode oder Cache.Insert der Methode ein Element hinzufügen, sodass ASP.NET die richtigen Methodenaufrufe automatisch vornehmen 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 Instanz des Caches, auf die Page unten im Codeausschnitt zugegriffen wird, ist ein Element des 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 stehen über die Cache
Eigenschaft des HttpContext Objekts oder die Cache
Eigenschaft des Page Objekts zur Verfügung.
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.