PartialCachingAttribute Classe

Definição

Define o atributo de metadados que os controles de usuário do Web Forms (arquivos .ascx) usam 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, ctlMine, que 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 do 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 do 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 PartialCachingAttribute classe de atributo marca os controles do usuário (arquivos.ascx) que dão suporte ao cache de fragmento 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 o 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 nos quais você está trabalhando com BasePartialCachingControl instâncias.

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

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

Construtores

PartialCachingAttribute(Int32)

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

PartialCachingAttribute(Int32, String, String, String)

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

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

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

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

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

Propriedades

Duration

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

ProviderName

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

Shared

Obtém um valor que indica se a saída de 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 tabela e banco de dados dos quais o controle de usuário em cache depende.

TypeId

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

(Herdado de Attribute)
VaryByControls

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

VaryByCustom

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

VaryByParams

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

Métodos

Equals(Object)

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

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a 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 Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

_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 para um objeto, que pode ser usado para obter as informações de tipo para 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