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 delegata CacheItemRemovedCallback , 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 , aby dodać obiekty do pamięci podręcznej i pobrać wartość tych obiektów. W metodzie AddItemToCache używa Cache.Add metody , aby dodać element do pamięci podręcznej. Aby użyć delegataCacheItemRemovedCallback, należy dodać element do pamięci podręcznej za pomocą tej metody lub Cache.Insert metody, aby ASP.NET może 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.

Uwaga

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, dopóki 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.

Uwaga

Klasa nie jest przeznaczona Cache do użytku poza aplikacjami ASP.NET. Została zaprojektowana i przetestowana 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 ObjectCache klasy .

Konstruktory

Cache()

Inicjuje nowe wystąpienie klasy Cache.

Pola

NoAbsoluteExpiration

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

NoSlidingExpiration

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

Właściwości

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

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 elementu Cache.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Get(String)

Pobiera określony element z Cache obiektu.

GetEnumerator()

Pobiera moduł wyliczający słownika używany do iterowania po ustawieniach klucza i ich wartościach zawartych w pamięci podręcznej.

GetHashCode()

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

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
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.

Insert(String, Object, CacheDependency)

Wstawia obiekt do Cache obiektu, który ma zależności pliku lub klucza.

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

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

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

Wstawia obiekt 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.

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.

MemberwiseClone()

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

(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

IEnumerable.GetEnumerator()

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

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy elementu IEnumerable na określony typ.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable elementu na podstawie określonego typu.

AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkowo.

Zobacz też