PartialCachingAttribute Classe

Definição

Define o atributo de metadados que os controlos do utilizador do Web Forms (ficheiros .ascx) usam para indicar se e como a sua saída é armazenada em cache. Esta 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 seguinte 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 controlo de utilizador que é usado com a ctlMine classe parcial.

  • Uma página Web Forms que aloja o controlo do utilizador.

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 controlo do utilizador deve ser armazenado em cache 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

A segunda parte do exemplo mostra um controlo do utilizador que é usado com o exemplo anterior para demonstrar o cache de controlo do utilizador.

<!-- 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 Web Forms que aloja o controlo do utilizador.

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

Observações

A classe de atributo PartialCachingAttribute marca os controlos do utilizador (ficheiros .ascx) que suportam cache de fragmentos e encapsula as definições de cache que ASP.NET utiliza ao armazenar o controlo em cache. Os programadores de páginas e controlos utilizam o PartialCachingAttribute atributo para permitir a cache de saída para um controlo do utilizador num ficheiro code-behind.

Usar isso PartialCachingAttribute é uma das várias formas de ativar o cache de saída. A lista seguinte descreve métodos que pode usar para ativar o cache de saída.

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

  • Use o PartialCachingAttribute para ativar a cache de um controlo de utilizador num ficheiro code-behind.

  • Usa a ControlCachePolicy classe para especificar programaticamente definições de cache em cenários programáticos em que estás a trabalhar com BasePartialCachingControl instâncias.

Se um controlo do utilizador contiver uma diretiva @ OutputCache ou tiver uma PartialCachingAttribute aplicada, o parser ASP.NET gera uma instância da classe PartialCachingControl para envolver o controlo do utilizador.

Para mais informações sobre ASP.NET cache, consulte Caching. Para mais informações sobre o uso de atributos, consulte Atributos.

Construtores

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

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

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

Inicializa uma nova instância da PartialCachingAttribute classe, especificando a duração de cache, quaisquer GET valores de e (e POST valores), nomes de controlo, requisitos personalizados de cache de saída usados para variar a cache, as dependências da base de dados e se a saída de controlo do utilizador pode ser partilhada com várias páginas.

PartialCachingAttribute(Int32, String, String, String)

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

PartialCachingAttribute(Int32)

Inicializa uma nova instância da PartialCachingAttribute classe com a duração especificada atribuída ao controlo do utilizador a ser armazenado em cache.

Propriedades

Name Description
Duration

Obtém o tempo, em segundos, que os itens em cache devem permanecer na cache de saída.

ProviderName

Obtém ou define o nome do fornecedor utilizado para armazenar os dados em cache de saída para o controlo associado.

Shared

Recebe um valor que indica se a saída de controlo do utilizador pode ser partilhada com várias páginas.

SqlDependency

Obtém uma cadeia delimitada que identifica um ou mais pares de nomes de base de dados e tabelas dos quais o controlo do utilizador em cache depende.

TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)
VaryByControls

Obtém uma lista das propriedades de controlo do utilizador que a cache de saída usa para variar o controlo do utilizador.

VaryByCustom

Obtém uma lista de strings personalizadas que a cache de saída usará para variar o controlo do utilizador.

VaryByParams

Obtém uma lista de parâmetros de string de consulta ou formulário POST que a cache de saída usará para variar o controlo do utilizador.

Métodos

Name Description
Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

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

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

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

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

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

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

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

(Herdado de Attribute)

Aplica-se a

Ver também