PartialCachingAttribute Classe

Définition

Définit l’attribut de métadonnées que les contrôles utilisateur Web Forms (fichiers.ascx) utilisent pour indiquer si et comment leur sortie est mise en cache. Cette classe ne peut pas être héritée.

public ref class PartialCachingAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class PartialCachingAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type PartialCachingAttribute = class
    inherit Attribute
Public NotInheritable Class PartialCachingAttribute
Inherits Attribute
Héritage
PartialCachingAttribute
Attributs

Exemples

L’exemple de code suivant illustre l’utilisation du PartialCachingAttributefichier . Cet exemple comporte trois parties :

  • Classe partielle, ctlMinequi hérite de la UserControl classe de base et à laquelle l’attribut PartialCachingAttribute est appliqué.

  • Contrôle utilisateur utilisé avec la ctlMine classe partielle.

  • Page Web Forms qui héberge le contrôle utilisateur.

La première partie de l’exemple illustre une classe partielle qui hérite de la UserControl classe de base et à laquelle l’attribut PartialCachingAttribute est appliqué. Dans cet exemple, l’attribut spécifie que le contrôle utilisateur doit être mis en cache pendant 20 secondes.

// [filename partialcache.cs]
// Create a code-behind user control that is cached
// for 20 seconds using the PartialCachingAttribute class.
// This control uses a DataGrid server control to display
// XML data.
using System;
using System.IO;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Samples.AspNet.CS.Controls
{

    // Set the PartialCachingAttribute.Duration property to 20 seconds.
    [PartialCaching(20)]
    public partial class ctlMine : UserControl
    {

        protected void Page_Load(Object Src, EventArgs E)
        {
            DataSet ds = new DataSet();

            FileStream fs = new FileStream(Server.MapPath("schemadata.xml"), FileMode.Open, FileAccess.Read);
            StreamReader reader = new StreamReader(fs);
            ds.ReadXml(reader);
            fs.Close();

            DataView Source = new DataView(ds.Tables[0]);
            // Use the LiteralControl constructor to create a new
            // instance of the class.
            LiteralControl myLiteral = new LiteralControl();
            // Set the LiteralControl.Text property to an HTML
            // string and the TableName value of a data source.
            myLiteral.Text = "<h6><font face=verdana>Caching an XML Table: " + Source.Table.TableName + " </font></h6>";
            MyDataGrid.DataSource = Source;
            MyDataGrid.DataBind();

            TimeMsg.Text = DateTime.Now.ToString("G");
        }
    }
}
' Filename is partialcache.vb
' Create a code-behind user control that is cached
' for 20 seconds using the PartialCachingAttribute class.
' This control uses a DataGrid server control to display
' XML data.
Imports System.IO
Imports System.Data
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet.VB.Controls

    ' Set the PartialCachingAttribute.Duration property to 20 seconds.
    <PartialCaching(20)> _
    Partial Class ctlMine
        Inherits UserControl

        Protected Sub Page_Load(ByVal Src As [Object], ByVal E As EventArgs)
            Dim ds As New DataSet()

            Dim fs As New FileStream(Server.MapPath("schemadata.xml"), FileMode.Open, FileAccess.Read)
            Dim reader As New StreamReader(fs)
            ds.ReadXml(reader)
            fs.Close()

            Dim [Source] As New DataView(ds.Tables(0))
            ' Use the LiteralControl constructor to create a new
            ' instance of the class.
            Dim myLiteral As New LiteralControl()
            ' Set the LiteralControl.Text property to an HTML
            ' string and the TableName value of a data source.
            myLiteral.Text = "<h6><font face=verdana>Caching an XML Table: " & [Source].Table.TableName & " </font></h6>"
            MyDataGrid.DataSource = [Source]
            MyDataGrid.DataBind()

            TimeMsg.Text = DateTime.Now.ToString("G")
        End Sub
    End Class
End Namespace

La deuxième partie de l’exemple montre un contrôle utilisateur utilisé avec l’exemple précédent pour illustrer la mise en cache des contrôles utilisateur.

<!-- The mark-up .ascx file that displays the output of
     the partialcache.cs user control code-behind file. -->
<%@ Control language="C#" inherits="Samples.AspNet.CS.Controls.ctlMine" CodeFile="partialcache.cs.ascx.cs" %>

  <ASP:DataGrid id="MyDataGrid" runat="server"
    Width="900"
    BackColor="#ccccff"
    BorderColor="black"
    ShowFooter="false"
    CellPadding="3"
    CellSpacing="0"
    Font-Names="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaadd"
    EnableViewState="false"
  />

  <br />

  <i>Control last generated on:</i> <asp:label id="TimeMsg" runat="server" />
<!-- The mark-up .ascx file that displays the output of
     the partialcache.vb user control code-behind file. -->
<%@ Control language="vb" inherits="Samples.AspNet.VB.Controls.ctlMine" CodeFile="partialcache.vb.ascx.vb" %>

  <ASP:DataGrid id="MyDataGrid" runat="server"
    Width="900"
    BackColor="#ccccff"
    BorderColor="black"
    ShowFooter="false"
    CellPadding="3"
    CellSpacing="0"
    Font-Names="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaadd"
    EnableViewState="false"
  />

  <br />

  <i>Control last generated on:</i> <asp:label id="TimeMsg" runat="server" />

La troisième partie de l’exemple illustre une page Web Forms qui héberge le contrôle utilisateur.

<!-- The WebForms page that contains the user control generated
     by partialcache.cs. -->
<%@ Register TagPrefix="Acme" TagName="Cache" Src="partialcache.cs.ascx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script language="C#" runat="server">

      void Page_Load(Object Src, EventArgs E ) {

          TimeMsg.Text = DateTime.Now.ToString("G");
      }

  </script>

<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
  
  <form id="form1" runat="server">
    <Acme:Cache runat="server"/>
    <br />

    <i>Page last generated on:</i> <asp:label id="TimeMsg" runat="server" />

  </form>
</body>
</html>
<!-- The WebForms page that contains the user control generated
     by partialcache.vb. -->
<%@ Register TagPrefix="Acme" TagName="Cache" Src="partialcache.vb.ascx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script language="vb" runat="server">

   Sub Page_Load(Src As [Object], E As EventArgs) 
      TimeMsg.Text = DateTime.Now.ToString("G")
   End Sub 'Page_Load

  </script>

<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
  
  <form id="form1" runat="server">
    <Acme:Cache runat="server"/>
    <br />

    <i>Page last generated on:</i> <asp:label id="TimeMsg" runat="server" />

  </form>
</body>
</html>

Remarques

La classe d’attribut PartialCachingAttribute marque les contrôles utilisateur (fichiers .ascx) qui prennent en charge la mise en cache des fragments et encapsule les paramètres de cache utilisés par ASP.NET lors de la mise en cache du contrôle. Les développeurs de pages et de contrôles utilisent l’attribut pour activer la PartialCachingAttribute mise en cache de sortie d’un contrôle utilisateur dans un fichier code-behind.

PartialCachingAttribute L’utilisation est l’une des différentes façons dont vous pouvez activer la mise en cache de sortie. La liste suivante décrit les méthodes que vous pouvez utiliser pour activer la mise en cache de sortie.

  • Utilisez la directive pour activer la @ OutputCache mise en cache de sortie dans des scénarios déclaratifs.

  • Utilisez la fonctionnalité pour activer la PartialCachingAttribute mise en cache d’un contrôle utilisateur dans un fichier code-behind.

  • Utilisez la ControlCachePolicy classe pour spécifier par programmation les paramètres de cache dans les scénarios de programmation dans lesquels vous travaillez avec BasePartialCachingControl des instances.

Si un contrôle utilisateur contient une directive @ OutputCache ou si un PartialCachingAttribute est appliqué, l’analyseur ASP.NET génère une instance de la classe PartialCachingControl pour encapsuler le contrôle utilisateur.

Pour plus d’informations sur la mise en cache ASP.NET, consultez Caching. Pour plus d’informations sur l’utilisation d’attributs, consultez Attributs.

Constructeurs

Nom Description
PartialCachingAttribute(Int32, String, String, String, Boolean)

Initialise une nouvelle instance de la PartialCachingAttribute classe, en spécifiant la durée de mise en cache, les GET noms de POST contrôle, les noms de contrôle, les exigences de mise en cache de sortie personnalisées utilisées pour varier le cache et si la sortie du contrôle utilisateur peut être partagée avec plusieurs pages.

PartialCachingAttribute(Int32, String, String, String, String, Boolean)

Initialise une nouvelle instance de la PartialCachingAttribute classe, en spécifiant la durée de mise en cache, les GET noms de POST contrôle, les noms de contrôle, les exigences de mise en cache de sortie personnalisées utilisées pour varier le cache, les dépendances de base de données et si la sortie du contrôle utilisateur peut être partagée avec plusieurs pages.

PartialCachingAttribute(Int32, String, String, String)

Initialise une nouvelle instance de la PartialCachingAttribute classe, en spécifiant la durée de mise en cache, les valeurs GET et POST, les noms de contrôle et les exigences de mise en cache de sortie personnalisées utilisées pour varier le cache.

PartialCachingAttribute(Int32)

Initialise une nouvelle instance de la PartialCachingAttribute classe avec la durée spécifiée affectée au contrôle utilisateur à mettre en cache.

Propriétés

Nom Description
Duration

Obtient la durée, en secondes, que les éléments mis en cache doivent rester dans le cache de sortie.

ProviderName

Obtient ou définit le nom du fournisseur utilisé pour stocker les données mises en cache de sortie pour le contrôle associé.

Shared

Obtient une valeur indiquant si la sortie du contrôle utilisateur peut être partagée avec plusieurs pages.

SqlDependency

Obtient une chaîne délimitée qui identifie une ou plusieurs paires de noms de base de données et de table dont dépend le contrôle utilisateur mis en cache.

TypeId

En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute.

(Hérité de Attribute)
VaryByControls

Obtient une liste des propriétés de contrôle utilisateur que le cache de sortie utilise pour varier le contrôle utilisateur.

VaryByCustom

Obtient une liste de chaînes personnalisées que le cache de sortie utilisera pour varier le contrôle utilisateur.

VaryByParams

Obtient une liste de paramètres de chaîne de requête ou de formulaire POST que le cache de sortie utilisera pour varier le contrôle utilisateur.

Méthodes

Nom Description
Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage pour cette instance.

(Hérité de Attribute)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type d’un objet, qui peuvent être utilisées pour obtenir les informations de type d’une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l’accès aux propriétés et méthodes exposées par un objet.

(Hérité de Attribute)

S’applique à

Voir aussi