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
The following example is a page that shows users the value assigned to an item in the cache, and then notifies them when the item is removed from the cache. Es erstellt eine RemovedCallback Methode, die die Signatur des CacheItemRemovedCallback Delegaten hat, um Benutzer zu benachrichtigen, wenn das Cacheelement entfernt wird, und es 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 delegat CacheItemRemovedCallback 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 vornehmen kann, 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.
Note
Die Instanz des Caches, auf die im folgenden Codeausschnitt zugegriffen wird, 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 stehen über die Cache Eigenschaft des HttpContext Objekts oder die Cache Eigenschaft des Page Objekts zur Verfügung.
Note
Die klasse Cache 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 wie Konsolenanwendungen oder Windows Forms Anwendungen die Klasse ObjectCache.
Konstruktoren
| Name | Beschreibung |
|---|---|
| Cache() |
Initialisiert eine neue Instanz der Cache-Klasse. |
Felder
| Name | Beschreibung |
|---|---|
| NoAbsoluteExpiration |
Wird im |
| NoSlidingExpiration |
Wird als |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Count |
Ruft die Anzahl der im Cache gespeicherten Elemente ab. |
| EffectivePercentagePhysicalMemoryLimit |
Ruft den Prozentsatz des physischen Arbeitsspeichers ab, der von einer Anwendung verbraucht werden kann, bevor ASP.NET beginnt, Elemente aus dem Cache zu entfernen. |
| EffectivePrivateBytesLimit |
Ruft die Anzahl der für den Cache verfügbaren Bytes ab. |
| Item[String] |
Ruft ab oder legt das Cacheelement am angegebenen Schlüssel fest. |
Methoden
| Name | Beschreibung |
|---|---|
| Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Fügt dem Cache Objekt das angegebene Element mit Abhängigkeiten, Ablauf- und Prioritätsrichtlinien und einer Stellvertretung hinzu, mit der Sie Die Anwendung benachrichtigen können, wenn das eingefügte Element aus dem |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| Get(String) |
Ruft das angegebene Element aus dem Cache Objekt ab. |
| GetEnumerator() |
Ruft einen Wörterbuch-Enumerator ab, der zum Durchlaufen der Schlüsseleinstellungen und der im Cache enthaltenen Werte verwendet wird. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Fügt ein Objekt mit Abhängigkeiten, Ablauf- und Prioritätsrichtlinien in das Cache Objekt ein, und eine Stellvertretung, die Sie verwenden können, um die Anwendung zu benachrichtigen, wenn das eingefügte Element aus dem |
| Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback) |
Fügt ein Objekt zusammen mit Abhängigkeiten, Ablaufrichtlinien und einem Delegaten in das Cache Objekt ein, mit dem Sie die Anwendung benachrichtigen können, bevor das Element aus dem Cache entfernt wird. |
| Insert(String, Object, CacheDependency, DateTime, TimeSpan) |
Fügt ein Objekt in die Cache Abhängigkeiten und Ablaufrichtlinien ein. |
| Insert(String, Object, CacheDependency) |
Fügt ein Objekt in die Cache Datei- oder Schlüsselabhängigkeiten ein. |
| Insert(String, Object) |
Fügt ein Element mit einem Cacheschlüssel in das Cache Objekt ein, um auf seinen Speicherort zu verweisen, wobei Standardwerte verwendet werden, die von der CacheItemPriority Enumeration bereitgestellt werden. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| Remove(String) |
Entfernt das angegebene Element aus dem Objekt der Anwendung Cache . |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IEnumerable.GetEnumerator() |
Gibt einen Enumerator zurück, der die Cache Objektauflistung durchlaufen kann. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AsParallel(IEnumerable) |
Aktiviert die Parallelisierung einer Abfrage. |
| AsQueryable(IEnumerable) |
Wandelt eine IEnumerable in eine IQueryableum. |
| Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um. |
| OfType<TResult>(IEnumerable) |
Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ. |
Gilt für:
Threadsicherheit
Dieser Typ ist threadsicher.