Cache Classe

Définition

Implémente le cache d’une application web. Cette classe ne peut pas être héritée.

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
Héritage
Cache
Implémente

Exemples

L’exemple suivant est une page qui montre aux utilisateurs la valeur affectée à un élément dans le cache, puis les avertit lorsque l’élément est supprimé du cache. Il crée une RemovedCallback méthode, qui a la signature du CacheItemRemovedCallback délégué, pour avertir les utilisateurs lorsque l’élément de cache est supprimé, et utilise l’énumération CacheItemRemovedReason pour leur indiquer pourquoi elle a été supprimée. En outre, elle utilise la Cache.Item[] propriété pour ajouter des objets au cache et récupérer la valeur de ces objets. Dans la AddItemToCache méthode, elle utilise la Cache.Add méthode pour ajouter un élément au cache. Pour utiliser le délégué CacheItemRemovedCallback, vous devez ajouter un élément au cache avec cette méthode ou la méthode Cache.Insert, afin que ASP.NET puissent effectuer automatiquement les appels de méthode appropriés lorsque l’élément est supprimé. La méthode personnalisée RemoveItemFromCache utilise la Cache.Remove méthode pour supprimer explicitement l’élément du cache, ce qui entraîne l’appel de la RemovedCallback méthode.

Note

L’instance de Cache accessible par l’extrait de code ci-dessous est membre de l’objet Page que cet exemple hérite.

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

Remarques

Une instance de cette classe est créée par domaine d’application et reste valide tant que le domaine d’application reste actif. Des informations sur une instance de cette classe sont disponibles via la Cache propriété de l’objet HttpContext ou la Cache propriété de l’objet Page .

Note

La classe Cache n’est pas destinée à être utilisée en dehors des applications ASP.NET. Il a été conçu et testé pour une utilisation dans ASP.NET pour fournir la mise en cache pour les applications web. Pour d’autres types d’applications, tels que les applications console ou les applications Windows Forms, utilisez la classe ObjectCache.

Constructeurs

Nom Description
Cache()

Initialise une nouvelle instance de la classe Cache.

Champs

Nom Description
NoAbsoluteExpiration

Utilisé dans le absoluteExpiration paramètre dans un Insert(String, Object) appel de méthode pour indiquer que l’élément ne doit jamais expirer. Ce champ est en lecture seule.

NoSlidingExpiration

Utilisé comme slidingExpiration paramètre dans un Insert(String, Object) appel de méthode ou Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) pour désactiver les expirations glissantes. Ce champ est en lecture seule.

Propriétés

Nom Description
Count

Obtient le nombre d’éléments stockés dans le cache.

EffectivePercentagePhysicalMemoryLimit

Obtient le pourcentage de mémoire physique qui peut être consommée par une application avant que ASP.NET commence à supprimer des éléments du cache.

EffectivePrivateBytesLimit

Obtient le nombre d’octets disponibles pour le cache.

Item[String]

Obtient ou définit l’élément de cache à la clé spécifiée.

Méthodes

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

Ajoute l’élément spécifié à l’objet Cache avec des dépendances, des stratégies d’expiration et de priorité, et un délégué que vous pouvez utiliser pour notifier votre application lorsque l’élément inséré est supprimé du Cache.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
Get(String)

Récupère l’élément spécifié de l’objet Cache .

GetEnumerator()

Récupère un énumérateur de dictionnaire utilisé pour itérer dans les paramètres de clé et leurs valeurs contenues dans le cache.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Insère un objet dans l’objet Cache avec des dépendances, des stratégies d’expiration et de priorité, et un délégué que vous pouvez utiliser pour notifier votre application lorsque l’élément inséré est supprimé du Cache.

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

Insère un objet dans l’objet Cache avec des dépendances, des stratégies d’expiration et un délégué que vous pouvez utiliser pour notifier l’application avant la suppression de l’élément du cache.

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

Insère un objet dans les Cache stratégies d’expiration et de dépendances.

Insert(String, Object, CacheDependency)

Insère un objet dans le Cache fichier ou les dépendances de clé.

Insert(String, Object)

Insère un élément dans l’objet avec une clé de Cache cache pour référencer son emplacement, en utilisant les valeurs par défaut fournies par l’énumération CacheItemPriority .

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
Remove(String)

Supprime l’élément spécifié de l’objet de Cache l’application.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IEnumerable.GetEnumerator()

Retourne un énumérateur qui peut itérer au sein de la collection d’objets Cache .

Méthodes d’extension

Nom Description
AsParallel(IEnumerable)

Active la parallélisation d’une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

Cast<TResult>(IEnumerable)

Convertit les éléments d’un IEnumerable en type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d’une IEnumerable en fonction d’un type spécifié.

S’applique à

Cohérence de thread

Ce type est thread safe.

Voir aussi