Cache Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 |
NoSlidingExpiration |
Používá se jako |
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 |
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 |
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.