Sdílet prostřednictvím


Cache Třída

Definice

Implementuje mezipaměť pro webovou aplikaci. Tato třída se nemůže 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 pak je upozorní, když je položka odebrána z mezipaměti. Vytvoří metodu RemovedCallback s podpisem delegáta CacheItemRemovedCallback , která uživatele upozorní 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žije 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 pomocí této metody nebo Cache.Insert metody, aby ASP.NET mohly automaticky provádět správná volání metody při odebrání položky. Vlastní RemoveItemFromCache metoda používá metodu Cache.Remove explicitně odstranit položku z mezipaměti, což způsobí RemovedCallback vyvolání metody.

Poznámka

Instance mezipaměti, ke které přistupuje následující fragment kódu, 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 HttpContextCache nebo vlastnosti objektu Page .

Poznámka

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

Konstruktory

Cache()

Inicializuje novou instanci Cache třídy.

Pole

NoAbsoluteExpiration

Používá se v parametru absoluteExpiration volání Insert(String, Object) metody k označení položky, která by nikdy neměla 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í klouzavého 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 objektu 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 výčet slovníku používaný k iteraci nastavením klíče a jejich hodnotami obsaženými v mezipaměti.

GetHashCode()

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

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

Získá aktuální Type instanci.

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

Vloží položku do objektu Cache s klíčem mezipaměti, aby odkazovala na jeho umístění pomocí výchozích hodnot uvedených ve výčtu CacheItemPriority .

Insert(String, Object, CacheDependency)

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

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