PartialCachingAttribute Clase

Definición

Define el atributo de los metadatos que utilizan los controles de usuario de formularios Web Forms (.ascx files) para indicar si se almacenan los resultados en la caché y cómo. Esta clase no puede heredarse.

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
Herencia
PartialCachingAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra el uso de PartialCachingAttribute. Este ejemplo tiene tres partes:

  • Clase parcial, ctlMine, que hereda de la UserControl clase base y a la que se aplica el PartialCachingAttribute atributo .

  • Control de usuario que se usa con la ctlMine clase parcial.

  • Página de formularios Web Forms que hospeda el control de usuario.

La primera parte del ejemplo muestra una clase parcial que hereda de la UserControl clase base y a la que se aplica el PartialCachingAttribute atributo . En este ejemplo, el atributo especifica que el control de usuario debe almacenarse en caché durante 20 segundos.

// [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 segunda parte del ejemplo muestra un control de usuario que se usa con el ejemplo anterior para demostrar el almacenamiento en caché del control de usuario.

<!-- 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 tercera parte del ejemplo muestra una página de Formularios Web Forms que hospeda el control de usuario.

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

Comentarios

La PartialCachingAttribute clase de atributo marca los controles de usuario (archivos .ascx) que admiten el almacenamiento en caché de fragmentos y encapsula la configuración de caché que ASP.NET usa al almacenar en caché el control. Los desarrolladores de páginas y controles usan el atributo para habilitar el PartialCachingAttribute almacenamiento en caché de salida para un control de usuario en un archivo de código subyacente.

El uso de es una de varias maneras de habilitar el PartialCachingAttribute almacenamiento en caché de salida. En la lista siguiente se describen los métodos que puede usar para habilitar el almacenamiento en caché de salida.

  • Use la directiva para habilitar el @ OutputCache almacenamiento en caché de salida en escenarios declarativos.

  • Use para habilitar el PartialCachingAttribute almacenamiento en caché para un control de usuario en un archivo de código subyacente.

  • Use la ControlCachePolicy clase para especificar mediante programación la configuración de caché en escenarios mediante programación en los que está trabajando con BasePartialCachingControl instancias.

Si un control de usuario contiene una @ OutputCache directiva o tiene aplicada PartialCachingAttribute , el analizador de ASP.NET genera una instancia de la PartialCachingControl clase para encapsular el control de usuario.

Para obtener más información sobre ASP.NET almacenamiento en caché, consulte Almacenamiento en caché. Para obtener más información sobre el uso de atributos, vea Atributos.

Constructores

PartialCachingAttribute(Int32)

Inicializa una nueva instancia de la clase PartialCachingAttribute con la duración especificada asignada al control de usuario que se va a almacenar en caché.

PartialCachingAttribute(Int32, String, String, String)

Inicializa una nueva instancia de la clase PartialCachingAttribute, especificando la duración del almacenamiento en memoria caché, cualquier valor GET y POST, nombres de control y requisitos personalizados de almacenamiento en la caché de resultados utilizados para modificar la memoria caché.

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

Inicializa una nueva instancia de la clase PartialCachingAttribute, especificando la duración del almacenamiento en caché, cualquier valor GET y POST, nombres de control, requisitos de almacenamiento en la caché de resultados personalizados utilizados para variar la caché, y si el resultado del control de usuario puede compartirse con varias páginas o no.

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

Inicializa una nueva instancia de la clase PartialCachingAttribute, especificando la duración del almacenamiento en caché, cualquier valor GET y POST, nombres de control, requisitos de almacenamiento en la caché de resultados personalizados utilizados para variar la caché, las dependencias de la base de datos y si el resultado del control de usuario puede compartirse con varias páginas o no.

Propiedades

Duration

Obtiene el periodo de tiempo, en segundos, que deben permanecer en la caché de resultados los elementos almacenados en memoria caché.

ProviderName

Obtiene o establece el nombre del proveedor que se utiliza para almacenar los datos en la caché de resultados para el control asociado.

Shared

Obtiene un valor que indica si varias páginas pueden compartir el resultado de un control de usuario.

SqlDependency

Obtiene una cadena delimitada que identifica una o más bases de datos y pares de nombres de tabla de los que depende el control de usuario almacenado en memoria caché.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)
VaryByControls

Obtiene una lista de propiedades de control de usuario que utiliza la caché de resultados para modificar el control de usuario.

VaryByCustom

Obtiene una lista de cadenas personalizadas que utilizará la caché de resultados para modificar el control de usuario.

VaryByParams

Obtiene una lista de los parámetros de cadena de consulta o de formulario POST que utilizará la caché de resultados para modificar el control de usuario.

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

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

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)

Se aplica a

Consulte también