PartialCachingAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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
ctlMineclasse 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
@ OutputCachediretiva 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 |
| PartialCachingAttribute(Int32, String, String, String, String, Boolean) |
Inicializa uma nova instância da PartialCachingAttribute classe, especificando a duração de cache, quaisquer |
| 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 |
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) |