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

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 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)-Methodenaufruf oder Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)-Methodenaufruf verwendet, um die gleitende Ablaufzeit zu deaktivieren. Dieses Feld ist schreibgeschützt.

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 demCache benachrichtigt werden kann.

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 Cache benachrichtigt werden kann.

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.

Siehe auch