PartialCachingAttribute Classe

Definizione

Definisce l'attributo di metadati usato dai controlli utente di Web Form (file con estensione ascx) per indicare se e come viene memorizzato nella cache il relativo output. La classe non può essere ereditata.

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
Ereditarietà
PartialCachingAttribute
Attributi

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di PartialCachingAttribute. In questo esempio sono presenti tre parti:

  • Classe parziale, ctlMine, che eredita dalla UserControl classe di base e a cui viene applicato l'attributo PartialCachingAttribute .

  • Controllo utente utilizzato con la ctlMine classe parziale.

  • Pagina Web Form che ospita il controllo utente.

La prima parte dell'esempio illustra una classe parziale che eredita dalla UserControl classe di base e a cui viene applicato l'attributo PartialCachingAttribute . In questo esempio, l'attributo specifica che il controllo utente deve essere memorizzato nella cache per 20 secondi.

// [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 seconda parte dell'esempio mostra un controllo utente usato con l'esempio precedente per illustrare la memorizzazione nella cache dei controlli utente.

<!-- 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 terza parte dell'esempio illustra una pagina Web Form che ospita il controllo utente.

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

Commenti

La classe di attributi PartialCachingAttribute contrassegna i controlli utente (file con estensione ascx) che supportano la memorizzazione nella cache dei frammenti e incapsula le impostazioni della cache usate ASP.NET durante la memorizzazione nella cache del controllo. Gli sviluppatori di pagine e controlli usano l'attributo per abilitare la PartialCachingAttribute memorizzazione nella cache di output per un controllo utente in un file code-behind.

L'uso PartialCachingAttribute di è uno dei diversi modi in cui è possibile abilitare la memorizzazione nella cache dell'output. Nell'elenco seguente vengono descritti i metodi che è possibile usare per abilitare la memorizzazione nella cache dell'output.

  • Usare la direttiva per abilitare la @ OutputCache memorizzazione nella cache di output in scenari dichiarativi.

  • Usare per abilitare la PartialCachingAttribute memorizzazione nella cache per un controllo utente in un file code-behind.

  • Usare la ControlCachePolicy classe per specificare le impostazioni della cache a livello di codice in scenari a livello di codice in cui si usano BasePartialCachingControl le istanze.

Se un controllo utente contiene una direttiva /> applicato, il parser ASP.NET genera un'istanza della classe per eseguire il wrapping del controllo utente.

Per altre informazioni sulla memorizzazione nella cache di ASP.NET, vedere Caching. Per altre informazioni sull'uso degli attributi, vedere Attributi.

Costruttori

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

Inizializza una nuova istanza della PartialCachingAttribute classe , specificando la durata della memorizzazione nella cache, i GET valori e POST , i nomi dei controlli, i requisiti di memorizzazione nella cache dell'output personalizzati usati per variare la cache e se l'output del controllo utente può essere condiviso con più pagine.

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

Inizializza una nuova istanza della PartialCachingAttribute classe , specificando la durata della memorizzazione nella cache, i GET valori e POST , i nomi dei controlli, i requisiti di memorizzazione nella cache dell'output personalizzati usati per variare la cache, le dipendenze del database e se l'output del controllo utente può essere condiviso con più pagine.

PartialCachingAttribute(Int32, String, String, String)

Inizializza una nuova istanza della PartialCachingAttribute classe , specificando la durata della memorizzazione nella cache, i valori GET e POST, i nomi dei controlli e i requisiti di memorizzazione nella cache dell'output personalizzati usati per variare la cache.

PartialCachingAttribute(Int32)

Inizializza una nuova istanza della PartialCachingAttribute classe con la durata specificata assegnata al controllo utente da memorizzare nella cache.

Proprietà

Nome Descrizione
Duration

Ottiene la quantità di tempo, in secondi, che gli elementi memorizzati nella cache devono rimanere nella cache di output.

ProviderName

Ottiene o imposta il nome del provider utilizzato per archiviare i dati memorizzati nella cache di output per il controllo associato.

Shared

Ottiene un valore che indica se l'output del controllo utente può essere condiviso con più pagine.

SqlDependency

Ottiene una stringa delimitata che identifica una o più coppie di nomi di database e tabella da cui dipende il controllo utente memorizzato nella cache.

TypeId

Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute.

(Ereditato da Attribute)
VaryByControls

Ottiene un elenco di proprietà del controllo utente utilizzate dalla cache di output per variare il controllo utente.

VaryByCustom

Ottiene un elenco di stringhe personalizzate che verranno usate dalla cache di output per variare il controllo utente.

VaryByParams

Ottiene un elenco di parametri di stringa di query o di modulo POST che verranno usati dalla cache di output per variare il controllo utente.

Metodi

Nome Descrizione
Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per questa istanza.

(Ereditato da Attribute)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

Quando sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di identificatori dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero di interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto .

(Ereditato da Attribute)

Si applica a

Vedi anche