Cache-Klasse
Implementiert den Cache für eine Webanwendung. Diese Klasse kann nicht geerbt werden.
Namespace: System.Web.Caching
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public NotInheritable Class Cache
Implements IEnumerable
'Usage
Dim instance As Cache
public sealed class Cache : IEnumerable
public ref class Cache sealed : IEnumerable
public final class Cache implements IEnumerable
public final class Cache implements IEnumerable
Hinweise
Für jede Anwendungsdomäne wird eine Instanz dieser Klasse erstellt, die so lange gültig ist, wie die Anwendungsdomäne aktiv ist. Informationen zu einer Instanz dieser Klasse sind über die Cache-Eigenschaft des HttpContext-Objekts oder die Cache-Eigenschaft des Page-Objekts verfügbar.
Thema | Position |
---|---|
Gewusst wie: Löschen von Elementen aus dem Cache in ASP.NET | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Gewusst wie: Hinzufügen von Elementen zum Cache | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Gewusst wie: Löschen von Elementen aus dem Cache in ASP.NET | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Gewusst wie: Hinzufügen von Elementen zum Cache | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Gewusst wie: Löschen von Elementen aus dem Cache in ASP.NET | Erstellen von ASP.NET-Webanwendungen |
Gewusst wie: Hinzufügen von Elementen zum Cache | Erstellen von ASP.NET-Webanwendungen |
Beispiel
Im folgenden Beispiel wird eine Seite gezeigt, auf der Benutzern der einem Element im Cache zugeordnete Wert angezeigt wird. Außerdem werden die Benutzer benachrichtigt, wenn das Element aus dem Cache entfernt wird. Es wird eine RemovedCallback
-Methode erstellt, die die Signatur des CacheItemRemovedCallback-Delegaten verwendet, um Benutzer zu benachrichtigen, wenn das Cacheelement entfernt wird, und mit der CacheItemRemovedReason-Enumeration wird den Benutzern der Grund für das Entfernen mitgeteilt. Außerdem wird die Cache.Item-Eigenschaft verwendet, um dem Cache Objekte hinzuzufügen und den Wert dieser Objekte abzurufen. Innerhalb der AddItemToCache
-Methode wird die Cache.Add-Methode zum Hinzufügen eines Elements zum Cache verwendet. Wenn Sie den CacheItemRemovedCallback-Delegaten verwenden möchten, müssen Sie mit dieser Methode oder mit der Cache.Insert-Methode dem Cache ein Element hinzufügen, damit ASP.NET beim Entfernen automatisch die richtigen Methodenaufrufe durchführen kann. Die benutzerdefinierte RemoveItemFromCache
-Methode verwendet die Cache.Remove-Methode zum expliziten Löschen des Elements aus dem Cache, wobei die RemovedCallback
-Methode aufgerufen wird.
<%@ Page Language="VB" %>
<html>
<Script runat=server>
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
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), TimeSpan.Zero, CacheItemPriority.High, onRemove)
End If
End Sub
Public Sub RemoveItemFromCache(sender As Object, e As EventArgs)
If (Not IsNothing(Cache("Key1"))) Then
Cache.Remove("Key1")
End If
End Sub
</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
Response.Write("Value of cache key: <B>" + Server.HtmlEncode(CType(Cache("Key1"),String)) + "</B>")
End If
%>
</body>
</html>
<html>
<Script runat=server language="C#">
static bool itemRemoved = false;
static CacheItemRemovedReason reason;
CacheItemRemovedCallback onRemove = null;
public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){
itemRemoved = true;
reason = r;
}
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), TimeSpan.Zero, CacheItemPriority.High, onRemove);
}
public void RemoveItemFromCache(Object sender, EventArgs e) {
if(Cache["Key1"] != null)
Cache.Remove("Key1");
}
</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 {
Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");
}
%>
</body>
</html>
<html>
<Script runat=server language="JScript">
static var itemRemoved : boolean = false;
static var reason : CacheItemRemovedReason;
var onRemove : CacheItemRemovedCallback = null;
public function RemovedCallback(k : String, v : Object, r : CacheItemRemovedReason){
itemRemoved = true;
reason = r;
}
public function AddItemToCache(sender : Object, e : EventArgs) {
itemRemoved = false;
onRemove = this.RemovedCallback;
if (Cache["Key1"] == null)
Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(10), TimeSpan.Zero, CacheItemPriority.High, onRemove);
}
public function RemoveItemFromCache(sender : Object, e : EventArgs) {
if(Cache["Key1"] != null)
Cache.Remove("Key1");
}
</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 + "</B>");
}
else {
Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"].ToString()) + "</B>");
}
%>
</body>
</html>
Vererbungshierarchie
System.Object
System.Web.Caching.Cache
Threadsicherheit
Dieser Typ ist für Multithreadoperationen sicher.
Plattformen
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
Cache-Member
System.Web.Caching-Namespace
HttpContext-Klasse
CacheDependency
CacheItemRemovedCallback