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 upozorní je, když je položka odebrána z mezipaměti. Vytvoří metodu RemovedCallback s podpisem delegáta CacheItemRemovedCallback , která uživatele upozorní, když se položka mezipaměti odebere, a pomocí výčtu CacheItemRemovedReason zjistí, 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 delegáta CacheItemRemovedCallback, je nutné přidat položku do mezipaměti pomocí této metody nebo metodu Cache.Insert, aby ASP.NET při odebrání položky automaticky volaly správné metody. Vlastní RemoveItemFromCache metoda používá metodu Cache.Remove k explicitní odstranění položky z mezipaměti, což způsobuje RemovedCallback vyvolání metody.

Note

Instance mezipaměti, ke které přistupuje následující fragment kódu, je členem Page objektu, 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á, pokud doména aplikace zůstane aktivní. Informace o instanci této třídy jsou k dispozici prostřednictvím Cache vlastnosti HttpContext objektu nebo Cache vlastnosti objektu Page .

Note

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

Konstruktory

Name Description
Cache()

Inicializuje novou instanci Cache třídy.

Pole

Name Description
NoAbsoluteExpiration

Používá se v parametru absoluteExpirationInsert(String, Object) ve volání metody, která označuje, že položka by neměla nikdy vypršet. Toto pole je určeno pouze ke čtení.

NoSlidingExpiration

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

Vlastnosti

Name Description
Count

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

EffectivePercentagePhysicalMemoryLimit

Získá procento fyzické paměti, kterou může aplikace využívat předtím, než 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 v zadaném klíči.

Metody

Name Description
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át, který můžete použít k upozornění aplikace při odebrání vložené položky z objektu Cache.

Equals(Object)

Určuje, zda je zadaný objekt roven 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, který se používá k iteraci prostřednictvím nastavení klíče a jejich hodnot obsažených v mezipaměti.

GetHashCode()

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

(Zděděno od Object)
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át, který můžete použít k upozornění aplikace při odebrání vložené položky z objektu Cache.

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

Vloží objekt do objektu Cache spolu 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.

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

Vloží objekt do Cache závislosti a zásad vypršení platnosti.

Insert(String, Object, CacheDependency)

Vloží objekt do Cache závislosti souboru nebo klíče.

Insert(String, Object)

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

MemberwiseClone()

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

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

Odebere zadanou položku z objektu aplikace Cache .

ToString()

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

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IEnumerable.GetEnumerator()

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

Metody rozšíření

Name Description
AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede IEnumerable na IQueryable.

Cast<TResult>(IEnumerable)

Přetypuje prvky IEnumerable na zadaný typ.

OfType<TResult>(IEnumerable)

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

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é