Cache Klass

Definition

Implementerar cachen för ett webbprogram. Det går inte att ärva den här klassen.

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
Arv
Cache
Implementeringar

Exempel

Följande exempel är en sida som visar användarna värdet som tilldelats till ett objekt i cacheminnet och sedan meddelar dem när objektet tas bort från cacheminnet. Den skapar en RemovedCallback metod som har ombudets CacheItemRemovedCallback signatur för att meddela användarna när cacheobjektet tas bort och använder CacheItemRemovedReason uppräkningen för att berätta varför det togs bort. Dessutom använder den Cache.Item[] egenskapen för att lägga till objekt i cacheminnet och hämta värdet för dessa objekt. AddItemToCache I metoden använder den Cache.Add metoden för att lägga till ett objekt i cacheminnet. Om du vill använda ombudet CacheItemRemovedCallback måste du lägga till ett objekt i cacheminnet med den här metoden eller metoden Cache.Insert, så att ASP.NET automatiskt kan göra rätt metodanrop när objektet tas bort. Den anpassade RemoveItemFromCache metoden använder Cache.Remove metoden för att uttryckligen ta bort objektet från cachen, vilket gör RemovedCallback att metoden anropas.

Note

Den cacheinstans som används av kodfragmentet nedan är medlem i det Page objekt som exemplet ärver.

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

Kommentarer

En instans av den här klassen skapas per programdomän och är giltig så länge programdomänen förblir aktiv. Information om en instans av den här klassen är tillgänglig via Cache objektets HttpContext egenskap eller Cache objektets Page egenskap.

Note

Klassen Cache är inte avsedd för användning utanför ASP.NET program. Den har utformats och testats för användning i ASP.NET för att tillhandahålla cachelagring för webbprogram. För andra typer av program, till exempel konsolprogram eller Windows Forms program, använder du klassen ObjectCache.

Konstruktorer

Name Description
Cache()

Initierar en ny instans av Cache klassen.

Fält

Name Description
NoAbsoluteExpiration

Används i parametern absoluteExpiration i ett Insert(String, Object) metodanrop för att ange att objektet aldrig ska upphöra att gälla. Detta fält är skrivskyddat.

NoSlidingExpiration

Används som slidingExpiration parameter i ett Insert(String, Object) - eller Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) -metodanrop för att inaktivera glidande förfallodatum. Detta fält är skrivskyddat.

Egenskaper

Name Description
Count

Hämtar antalet objekt som lagras i cacheminnet.

EffectivePercentagePhysicalMemoryLimit

Hämtar procentandelen fysiskt minne som kan förbrukas av ett program innan ASP.NET börjar ta bort objekt från cacheminnet.

EffectivePrivateBytesLimit

Hämtar det antal byte som är tillgängliga för cacheminnet.

Item[String]

Hämtar eller ställer in cacheobjektet på den angivna nyckeln.

Metoder

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

Lägger till det angivna objektet i Cache objektet med beroenden, principer för förfallodatum och prioritet samt ett ombud som du kan använda för att meddela ditt program när det infogade objektet tas bort från Cache.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
Get(String)

Hämtar det angivna objektet från objektet Cache .

GetEnumerator()

Hämtar en ordlisteuppräkning som används för att iterera genom nyckelinställningarna och deras värden i cacheminnet.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Infogar ett objekt i Cache objektet med beroenden, principer för förfallodatum och prioritet samt ett ombud som du kan använda för att meddela ditt program när det infogade objektet tas bort från Cache.

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

Infogar ett objekt i Cache objektet tillsammans med beroenden, förfalloprinciper och ett ombud som du kan använda för att meddela programmet innan objektet tas bort från cacheminnet.

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

Infogar ett objekt i Cache med beroenden och förfalloprinciper.

Insert(String, Object, CacheDependency)

Infogar ett objekt i Cache som har fil- eller nyckelberoenden.

Insert(String, Object)

Infogar ett objekt i Cache objektet med en cachenyckel för att referera till dess plats, med hjälp av standardvärden som tillhandahålls av CacheItemPriority uppräkningen.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Remove(String)

Tar bort det angivna objektet från programmets Cache objekt.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
IEnumerable.GetEnumerator()

Returnerar en uppräknare som kan iterera genom objektsamlingen Cache .

Tilläggsmetoder

Name Description
AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

Gäller för

Trådsäkerhet

Den här typen är trådsäker.

Se även