PartialCachingAttribute Classe

Definição

Define o atributo de metadados que o usuário do Web Forms controla (arquivos.ascx) usa para indicar se e como sua saída é armazenada em cache. Essa classe não pode ser herdada.

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
Herança
PartialCachingAttribute
Atributos

Exemplos

O exemplo de código a seguir demonstra o uso do PartialCachingAttribute. Este exemplo tem três partes:

  • Uma classe parcial, ctlMineque herda da UserControl classe base e à qual o PartialCachingAttribute atributo é aplicado.

  • Um controle de usuário usado com a ctlMine classe parcial.

  • Uma página do Web Forms que hospeda o controle de usuário.

A primeira parte do exemplo demonstra uma classe parcial que herda da UserControl classe base e à qual o PartialCachingAttribute atributo é aplicado. Neste exemplo, o atributo especifica que o controle de usuário deve ser armazenado em cache por 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

A segunda parte do exemplo mostra um controle de usuário usado com o exemplo anterior para demonstrar o cache de controle do usuário.

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

A terceira parte do exemplo demonstra uma página dos Web Forms que hospeda o controle do usuário.

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

Comentários

A classe de atributo PartialCachingAttribute marca os controles de usuário (arquivos.ascx) que dão suporte ao cache de fragmentos e encapsula as configurações de cache que ASP.NET usa ao armazenar em cache o controle. Os desenvolvedores de página e controles usam o atributo para habilitar o PartialCachingAttribute cache de saída para um controle de usuário em um arquivo code-behind.

Usar essa PartialCachingAttribute é uma das várias maneiras de habilitar o cache de saída. A lista a seguir descreve os métodos que você pode usar para habilitar o cache de saída.

  • Use a diretiva para habilitar o @ OutputCache cache de saída em cenários declarativos.

  • Use o para habilitar o PartialCachingAttribute cache para um controle de usuário em um arquivo code-behind.

  • Use a ControlCachePolicy classe para especificar programaticamente as configurações de cache em cenários programáticos em que você está trabalhando com BasePartialCachingControl instâncias.

Se um controle de usuário contiver uma diretiva @ OutputCache ou tiver um PartialCachingAttribute aplicado, o analisador ASP.NET gerará uma instância da classe PartialCachingControl para encapsular o controle de usuário.

Para obter mais informações sobre ASP.NET cache, consulte Caching. Para obter mais informações sobre como usar atributos, consulte Atributos.

Construtores

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

Inicializa uma nova instância da PartialCachingAttribute classe, especificando a duração do cache, todos GET e POST valores, nomes de controle, requisitos de cache de saída personalizados usados para variar o cache e se a saída do controle de usuário pode ser compartilhada com várias páginas.

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

Inicializa uma nova instância da PartialCachingAttribute classe, especificando a duração do cache, todos GET e POST valores, nomes de controle, requisitos de cache de saída personalizados usados para variar o cache, as dependências do banco de dados e se a saída do controle de usuário pode ser compartilhada com várias páginas.

PartialCachingAttribute(Int32, String, String, String)

Inicializa uma nova instância da PartialCachingAttribute classe, especificando a duração do cache, quaisquer valores GET e POST, nomes de controle e requisitos de cache de saída personalizados usados para variar o cache.

PartialCachingAttribute(Int32)

Inicializa uma nova instância da PartialCachingAttribute classe com a duração especificada atribuída ao controle de usuário a ser armazenado em cache.

Propriedades

Nome Description
Duration

Obtém a quantidade de tempo, em segundos, que os itens armazenados em cache devem permanecer no cache de saída.

ProviderName

Obtém ou define o nome do provedor usado para armazenar os dados armazenados em cache de saída para o controle associado.

Shared

Obtém um valor que indica se a saída do controle de usuário pode ser compartilhada com várias páginas.

SqlDependency

Obtém uma cadeia de caracteres delimitada que identifica um ou mais pares de nome de banco de dados e de tabela dos quais o controle de usuário armazenado em cache depende.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute.

(Herdado de Attribute)
VaryByControls

Obtém uma lista das propriedades de controle de usuário que o cache de saída usa para variar o controle do usuário.

VaryByCustom

Obtém uma lista de cadeias de caracteres personalizadas que o cache de saída usará para variar o controle do usuário.

VaryByParams

Obtém uma lista de parâmetros de cadeia de caracteres de consulta ou formulário POST que o cache de saída usará para variar o controle do usuário.

Métodos

Nome Description
Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Devolve o código hash para esta instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

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

Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

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

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também