Cache Classe

Définition

Implémente le cache pour 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 indique aux utilisateurs la valeur affectée à un élément dans le cache, puis les notifie lorsque l’élément est supprimé du cache. Elle crée une RemovedCallback méthode, qui a la signature du CacheItemRemovedCallback délégué, pour avertir les utilisateurs lorsque l’élément du cache est supprimé, et elle utilise l' CacheItemRemovedReason énumération pour leur indiquer la raison pour laquelle elle a été supprimée. En outre, il 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 CacheItemRemovedCallback délégué, vous devez ajouter un élément au cache avec cette méthode ou la Cache.Insert méthode, afin que ASP.NET puisse effectuer automatiquement les appels de méthode appropriés lorsque l’élément est supprimé. La RemoveItemFromCache méthode personnalisée utilise la Cache.Remove méthode pour supprimer explicitement l’élément du cache, ce qui provoque l’appel de la RemovedCallback méthode.

Notes

L’instance du cache accessible par l’extrait de code ci-dessous est un membre de l' Page objet 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. Les informations relatives à une instance de cette classe sont disponibles par le biais Cache de la propriété de l' HttpContext objet ou Cache de la propriété de l' Page objet.

Notes

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

Constructeurs

Cache()

Initialise une nouvelle instance de la classe Cache.

Champs

NoAbsoluteExpiration

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

NoSlidingExpiration

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

Propriétés

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 du cache correspondant à la clé spécifiée.

Méthodes

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é, ainsi qu'un délégué que vous pouvez utiliser pour avertir 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()

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

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Insert(String, Object)

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

Insert(String, Object, CacheDependency)

Insère un objet dans le Cache qui présente des dépendances de fichier ou de clé.

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

Insère un objet dans le Cache avec des dépendances et des stratégies d'expiration.

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

Ajoute un objet au Cache avec des dépendances, des stratégies d'expiration et de priorité, ainsi qu'un délégué que vous pouvez utiliser pour avertir votre application lorsque l'élément inséré est supprimé du Cache.

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

Ajoute un objet à l'objet Cache avec des dépendances, des stratégies d'expiration et un délégué que vous pouvez utiliser pour avertir l'application avant que l'élément ne soit supprimé du cache.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

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

Supprime l'élément spécifié dans l'objet Cache de l'application.

ToString()

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

(Hérité de Object)

Implémentations d’interfaces explicites

IEnumerable.GetEnumerator()

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

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Cohérence de thread

Ce type est thread-safe.

Voir aussi