Cache Třída

Definice

Implementuje mezipaměť pro webovou aplikaci. Tuto třídu nelze zdě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 položce v mezipaměti a pak je upozorní na odebrání položky z mezipaměti. Vytvoří RemovedCallback metodu, která má signaturu CacheItemRemovedCallback delegáta, aby upozornila uživatele, když je položka mezipaměti odebrána, a použije výčet k tomu, CacheItemRemovedReason Proč byla odebrána. Kromě toho tato Cache.Item[] vlastnost používá k přidání objektů do mezipaměti a načtení hodnoty těchto objektů. V AddItemToCache metodě používá Cache.Add metodu k přidání položky do mezipaměti. chcete-li použít CacheItemRemovedCallback delegáta, je nutné přidat položku do mezipaměti s touto metodou nebo Cache.Insert metodou, aby ASP.NET mohl automaticky provést správné volání metody při odebrání položky. Vlastní RemoveItemFromCache Metoda používá Cache.Remove metodu k explicitnímu odstranění položky z mezipaměti, což způsobuje RemovedCallback volání metody.

Poznámka

Instance mezipaměti, ke které je zobrazen 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 je vytvořena v rámci aplikační domény 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 HttpContext objektu nebo Cache vlastnosti Page objektu.

Poznámka

Cachetřída není určena pro použití mimo ASP.NET aplikace. byla navržena a testována pro použití v ASP.NET k poskytování mezipaměti pro webové aplikace. pro jiné typy aplikací, jako například 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 absoluteExpiration parametru ve Insert(String, Object) volání metody k označení, že platnost položky by nikdy neměla vypršet. Toto pole je jen ke čtení.

NoSlidingExpiration

Používá se jako slidingExpiration parametr ve volání metody nebo k zakázání Insert(String, Object) Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) klouzavý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, kterou může aplikace spotřebovat před tím, než ASP.NET začne odebírat položky z mezipaměti.

EffectivePrivateBytesLimit

Získá počet bajtů, které jsou k dispozici pro mezipaměť.

Item[String]

Získá nebo nastaví položku mezipaměti v zadaném klíči.

Metody

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

Přidá zadanou položku do Cache objektu se závislostmi, zásadami vypršení platnosti a priority a delegátem, který můžete použít k informová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 Cache objektu.

GetEnumerator()

Načte enumerátor slovníku, který se používá k iterování pomocí 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í instanci.

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

Vloží položku do Cache objektu s klíčem mezipaměti pro odkazování na její umístění s použitím výchozích hodnot poskytovaných CacheItemPriority výčtem.

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 se Cache závislostmi a zásadami vypršení platnosti.

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

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

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

Vloží objekt do objektu 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 Cache z mezipaměti.

MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .

(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 v Cache kolekci objektů.

Metody rozšíření

Cast<TResult>(IEnumerable)

Přetypování prvky IEnumerable na zadaný typ.

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

Povoluje paralelní zpracování dotazu.

AsQueryable(IEnumerable)

Převede IEnumerable na IQueryable .

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é