Cache Klasa

Definicja

Implementuje pamięć podręczną dla aplikacji internetowej. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
Cache
Implementuje

Przykłady

Poniższy przykład to strona przedstawiająca użytkowników wartość przypisaną do elementu w pamięci podręcznej, a następnie powiadamia ich o usunięciu elementu z pamięci podręcznej. Tworzy metodę RemovedCallback , która ma podpis CacheItemRemovedCallback delegata, aby powiadomić użytkowników o usunięciu elementu pamięci podręcznej i używa CacheItemRemovedReason wyliczenia, aby poinformować ich, dlaczego został usunięty. Ponadto używa Cache.Item[] właściwości do dodawania obiektów do pamięci podręcznej i pobierania wartości tych obiektów. W metodzie AddItemToCache używa Cache.Add metody , aby dodać element do pamięci podręcznej. Aby użyć delegata CacheItemRemovedCallback, należy dodać element do pamięci podręcznej przy użyciu tej metody lub metody Cache.Insert, aby ASP.NET automatycznie wykonywać odpowiednie wywołania metody po usunięciu elementu. Metoda niestandardowa RemoveItemFromCache używa Cache.Remove metody , aby jawnie usunąć element z pamięci podręcznej, powodując wywołanie RemovedCallback metody.

Note

Wystąpienie pamięci podręcznej, do którego uzyskuje dostęp poniższy fragment kodu, jest elementem członkowskim obiektu dziedziczonego Page przez ten przykład.

<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>

Uwagi

Jedno wystąpienie tej klasy jest tworzone dla domeny aplikacji i pozostaje prawidłowe, o ile domena aplikacji pozostaje aktywna. Informacje o wystąpieniu tej klasy są dostępne za pośrednictwem Cache właściwości HttpContext obiektu lub Cache właściwości Page obiektu.

Note

Klasa Cache nie jest przeznaczona do użytku poza aplikacjami ASP.NET. Został zaprojektowany i przetestowany pod kątem użycia w ASP.NET w celu zapewnienia buforowania dla aplikacji internetowych. W przypadku innych typów aplikacji, takich jak aplikacje konsolowe lub aplikacje Windows Forms, użyj klasy ObjectCache.

Konstruktory

Nazwa Opis
Cache()

Inicjuje nowe wystąpienie klasy Cache.

Pola

Nazwa Opis
NoAbsoluteExpiration

Używany w parametrze w absoluteExpiration wywołaniu Insert(String, Object) metody, aby wskazać, że element nigdy nie powinien wygasać. To pole jest przeznaczone tylko do odczytu.

NoSlidingExpiration

Używany jako slidingExpiration parametr w wywołaniu metody lub Insert(String, Object) w Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) celu wyłączenia przesuwanych wygasań. To pole jest przeznaczone tylko do odczytu.

Właściwości

Nazwa Opis
Count

Pobiera liczbę elementów przechowywanych w pamięci podręcznej.

EffectivePercentagePhysicalMemoryLimit

Pobiera procent pamięci fizycznej, która może być zużywana przez aplikację przed ASP.NET rozpoczyna usuwanie elementów z pamięci podręcznej.

EffectivePrivateBytesLimit

Pobiera liczbę bajtów dostępnych dla pamięci podręcznej.

Item[String]

Pobiera lub ustawia element pamięci podręcznej w określonym kluczu.

Metody

Nazwa Opis
Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Dodaje określony element do Cache obiektu z zależnościami, zasadami wygasania i priorytetu oraz delegatem, którego można użyć do powiadamiania aplikacji o usunięciu wstawionego elementu z obiektu Cache.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
Get(String)

Pobiera określony element z Cache obiektu.

GetEnumerator()

Pobiera moduł wyliczający słownik używany do iterowania za pomocą ustawień klucza i ich wartości zawartych w pamięci podręcznej.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Wstawia obiekt do Cache obiektu z zasadami zależności, wygasania i priorytetu oraz delegatem, którego można użyć do powiadamiania aplikacji o usunięciu wstawionego elementu z obiektu Cache.

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

Wstawia obiekt do Cache obiektu wraz z zależnościami, zasadami wygasania i pełnomocnikiem, którego można użyć do powiadamiania aplikacji przed usunięciem elementu z pamięci podręcznej.

Insert(String, Object, CacheDependency, DateTime, TimeSpan)

Wstawia obiekt do obiektu Cache z zasadami zależności i wygasania.

Insert(String, Object, CacheDependency)

Wstawia obiekt do Cache pliku lub zależności klucza.

Insert(String, Object)

Wstawia element do Cache obiektu z kluczem pamięci podręcznej w celu odwołania się do jego lokalizacji przy użyciu wartości domyślnych dostarczonych CacheItemPriority przez wyliczenie.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
Remove(String)

Usuwa określony element z obiektu aplikacji Cache .

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

Nazwa Opis
IEnumerable.GetEnumerator()

Zwraca moduł wyliczający, który może iterować po Cache kolekcji obiektów.

Metody rozszerzania

Nazwa Opis
AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje IEnumerable na IQueryable.

Cast<TResult>(IEnumerable)

Rzutuje elementy IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable na podstawie określonego typu.

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkiem.

Zobacz też