Cache Klas

Definitie

Implementeert de cache voor een webtoepassing. Deze klasse kan niet worden overgenomen.

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
Overname
Cache
Implementeringen

Voorbeelden

Het volgende voorbeeld is een pagina waarop gebruikers de waarde weergeeft die is toegewezen aan een item in de cache en deze vervolgens op de hoogte stelt wanneer het item uit de cache wordt verwijderd. Er wordt een RemovedCallback methode gemaakt, die de handtekening van de gemachtigde heeft, om gebruikers op de CacheItemRemovedCallback hoogte te stellen wanneer het cache-item wordt verwijderd en wordt de CacheItemRemovedReason opsomming gebruikt om hen te laten weten waarom het is verwijderd. Daarnaast wordt de Cache.Item[] eigenschap gebruikt om objecten toe te voegen aan de cache en de waarde van deze objecten op te halen. In de AddItemToCache methode wordt de Cache.Add methode gebruikt om een item toe te voegen aan de cache. Als u de gemachtigde CacheItemRemovedCallback wilt gebruiken, moet u een item toevoegen aan de cache met deze methode of de methode Cache.Insert, zodat ASP.NET automatisch de juiste methodeaanroepen kan maken wanneer het item wordt verwijderd. De aangepaste RemoveItemFromCache methode gebruikt de Cache.Remove methode om het item expliciet uit de cache te verwijderen, waardoor de RemovedCallback methode wordt aangeroepen.

Note

Het exemplaar van cache dat wordt geopend door het onderstaande fragment, is lid van het Page object dat door dit voorbeeld wordt overgenomen.

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

Opmerkingen

Eén exemplaar van deze klasse wordt gemaakt per toepassingsdomein en blijft geldig zolang het toepassingsdomein actief blijft. Informatie over een exemplaar van deze klasse is beschikbaar via de Cache eigenschap van het HttpContext object of de Cache eigenschap van het Page object.

Note

De klasse Cache is niet bedoeld voor gebruik buiten ASP.NET toepassingen. Het is ontworpen en getest voor gebruik in ASP.NET om caching voor webtoepassingen te bieden. Gebruik voor andere typen toepassingen, zoals consoletoepassingen of Windows Forms-toepassingen, de klasse ObjectCache.

Constructors

Name Description
Cache()

Initialiseert een nieuw exemplaar van de Cache klasse.

Velden

Name Description
NoAbsoluteExpiration

Wordt gebruikt in de absoluteExpiration parameter in een Insert(String, Object) methodeaanroep om aan te geven dat het item nooit mag verlopen. Dit veld is alleen-lezen.

NoSlidingExpiration

Wordt gebruikt als de slidingExpiration parameter in een Insert(String, Object) of Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) methodeaanroep om schuifverlooptijd uit te schakelen. Dit veld is alleen-lezen.

Eigenschappen

Name Description
Count

Hiermee haalt u het aantal items op dat in de cache is opgeslagen.

EffectivePercentagePhysicalMemoryLimit

Hiermee haalt u het percentage fysiek geheugen op dat door een toepassing kan worden verbruikt voordat ASP.NET items uit de cache verwijdert.

EffectivePrivateBytesLimit

Hiermee haalt u het aantal beschikbare bytes voor de cache op.

Item[String]

Hiermee haalt u het cache-item op de opgegeven sleutel op of stelt u het in.

Methoden

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

Voegt het opgegeven item toe aan het object met afhankelijkheden, verloop- en prioriteitsbeleid en een gemachtigde die u kunt gebruiken om uw toepassing op de Cache hoogte te stellen wanneer het ingevoegde item wordt verwijderd uit het Cache.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
Get(String)

Haalt het opgegeven item op uit het Cache object.

GetEnumerator()

Haalt een woordenlijst-opsomming op die wordt gebruikt om de sleutelinstellingen en de bijbehorende waarden in de cache te doorlopen.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

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

Hiermee voegt u een object in het object in met afhankelijkheden, verloop- en prioriteitsbeleid en een gemachtigde die u kunt gebruiken om uw toepassing op de Cache hoogte te stellen wanneer het ingevoegde item wordt verwijderd uit het Cache.

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

Hiermee voegt u een object in het Cache object in, samen met afhankelijkheden, verloopbeleid en een gemachtigde die u kunt gebruiken om de toepassing op de hoogte te stellen voordat het item uit de cache wordt verwijderd.

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

Hiermee voegt u een object toe aan het Cache object met afhankelijkheden en verloopbeleid.

Insert(String, Object, CacheDependency)

Hiermee voegt u een object in het Cache object met bestands- of sleutelafhankelijkheden in.

Insert(String, Object)

Hiermee voegt u een item in het Cache object in met een cachesleutel om naar de locatie te verwijzen, met behulp van standaardwaarden die worden opgegeven door de CacheItemPriority opsomming.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Remove(String)

Hiermee verwijdert u het opgegeven item uit het object van Cache de toepassing.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
IEnumerable.GetEnumerator()

Retourneert een enumerator die door de Cache objectverzameling kan worden herhaald.

Extensiemethoden

Name Description
AsParallel(IEnumerable)

Hiermee schakelt u parallelle uitvoering van een query in.

AsQueryable(IEnumerable)

Converteert een IEnumerable naar een IQueryable.

Cast<TResult>(IEnumerable)

Cast de elementen van een IEnumerable naar het opgegeven type.

OfType<TResult>(IEnumerable)

Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type.

Van toepassing op

Veiligheid thread

Dit type is thread veilig.

Zie ook