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 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 |
| NoSlidingExpiration |
Slouží jako |
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 |
| 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 |
| 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.