Cache Klasse

Definition

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 absoluteExpiration Parameter in einem Insert(String, Object) Methodenaufruf verwendet, um anzugeben, dass das Element nie ablaufen soll. Dieses Feld ist schreibgeschützt.

NoSlidingExpiration

Wird als slidingExpiration Parameter in einem Insert(String, Object) Oder Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) Methodenaufruf verwendet, um gleitende Ablaufabläufe zu deaktivieren. Dieses Feld ist schreibgeschützt.

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 CacheObjekt entfernt wird.

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 CacheObjekt entfernt wird.

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.

Weitere Informationen