Freigeben über


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

Das folgende Beispiel ist eine Seite, auf der Benutzer den Einem Element im Cache zugewiesenen Wert angezeigt werden und sie dann benachrichtigt, wenn das Element aus dem Cache entfernt wird. Es erstellt eine RemovedCallback Methode, die über die Signatur des CacheItemRemovedCallback Delegaten verfügt, um Benutzer zu benachrichtigen, wenn das Cacheelement entfernt wird, und 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 CacheItemRemovedCallback Delegaten 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 ausführen 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 Cache-Instanz, auf die der folgende Codeausschnitt zugreift, 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 sind über die Cache -Eigenschaft des HttpContext -Objekts oder die Cache -Eigenschaft des Page -Objekts verfügbar.

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.

Weitere Informationen