Cache Třída

Definice

Implementuje mezipaměť pro webovou aplikaci. Tuto třídu nelze dědit.

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
Dědičnost
Cache
Implementuje

Příklady

Následující příklad je stránka, která uživatelům zobrazuje hodnotu přiřazenou k položce v mezipaměti a poté je upozorní, když je položka odebrána z mezipaměti. Vytvoří metodu RemovedCallback , která má podpis CacheItemRemovedCallback delegáta, upozornit uživatele na odebrání položky mezipaměti a pomocí výčtu CacheItemRemovedReason jim sdělí, proč byla odebrána. Kromě toho používá Cache.Item[] vlastnost k přidání objektů do mezipaměti a načtení hodnoty těchto objektů. AddItemToCache V metodě používá metodu Cache.Add k přidání položky do mezipaměti. Chcete-li použít CacheItemRemovedCallback delegáta, musíte přidat položku do mezipaměti s touto metodou nebo metodou Cache.Insert , aby ASP.NET mohli automaticky provádět správná volání metody při odebrání položky. Vlastní RemoveItemFromCache metoda používá metodu Cache.Remove k explicitní odstranění položky z mezipaměti, což způsobí RemovedCallback vyvolání metody.

Poznámka

Instance mezipaměti, ke které přistupuje fragment kódu níže, je členem objektu Page , který tato ukázka dědí.

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

Poznámky

Jedna instance této třídy se vytvoří pro každou doménu aplikace a zůstane platná, dokud doména aplikace zůstane aktivní. Informace o instanci této třídy jsou k dispozici prostřednictvím Cache vlastnosti objektu HttpContext nebo Cache vlastnosti objektu Page .

Poznámka

Třída Cache není určena pro použití mimo ASP.NET aplikace. Byl navržen a otestován pro použití v ASP.NET k zajištění ukládání do mezipaměti pro webové aplikace. Pro jiné typy aplikací, jako jsou konzolové aplikace nebo model Windows Forms aplikace, použijte ObjectCache třídu .

Konstruktory

Cache()

Inicializuje novou instanci Cache třídy .

Pole

NoAbsoluteExpiration

Používá se v parametru absoluteExpiration ve Insert(String, Object) volání metody k označení položky by nikdy nemělo vypršet. Toto pole je jen ke čtení.

NoSlidingExpiration

Používá se jako slidingExpiration parametr ve Insert(String, Object) volání metody nebo Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) k zakázání posuvných vypršení platnosti. Toto pole je jen ke čtení.

Vlastnosti

Count

Získá počet položek uložených v mezipaměti.

EffectivePercentagePhysicalMemoryLimit

Získá procento fyzické paměti, která může být spotřebována aplikací před ASP.NET začne odebírat položky z mezipaměti.

EffectivePrivateBytesLimit

Získá počet bajtů dostupných pro mezipaměť.

Item[String]

Získá nebo nastaví položku mezipaměti na zadaný klíč.

Metody

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

Přidá zadanou položku do objektu Cache se závislostmi, zásadami vypršení platnosti a priority a delegáta, který můžete použít k upozornění aplikace, když je vložená položka odebrána z Cache.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Get(String)

Načte zadanou položku z objektu Cache .

GetEnumerator()

Načte slovníkový enumerátor používaný k iteraci prostřednictvím nastavení klíče a jejich hodnot obsažených v mezipaměti.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
Insert(String, Object)

Vloží položku do objektu Cache s klíčem mezipaměti odkazovat na jeho umístění pomocí výchozích hodnot zadaných výčtem CacheItemPriority .

Insert(String, Object, CacheDependency)

Vloží objekt do objektu Cache , který má závislosti souboru nebo klíče.

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

Vloží objekt do objektu Cache se závislostmi a zásadami vypršení platnosti.

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

Vloží objekt do objektu Cache se závislostmi, zásadami vypršení platnosti a priority a delegáta, který můžete použít k upozornění aplikace, když je vložená položka odebrána z objektu Cache.

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

Vloží objekt do objektu Cache společně se závislostmi, zásadami vypršení platnosti a delegátem, který můžete použít k upozornění aplikace před odebráním položky z mezipaměti.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
Remove(String)

Odebere zadanou položku z objektu Cache aplikace.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

IEnumerable.GetEnumerator()

Vrátí enumerátor, který může iterovat kolekcí Cache objektů.

Metody rozšíření

Cast<TResult>(IEnumerable)

Přetypuje prvky objektu na IEnumerable zadaný typ.

OfType<TResult>(IEnumerable)

Filtruje prvky objektu IEnumerable na základě zadaného typu.

AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede objekt na IEnumerableIQueryable.

Platí pro

Bezpečný přístup z více vláken

Tento typ je bezpečný pro přístup z více vláken.

Viz také