PartialCachingAttribute Klasa

Definicja

Definiuje atrybut metadanych używany przez użytkownika formularzy sieci Web (pliki ascx), aby wskazać, czy i jak są buforowane dane wyjściowe. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
PartialCachingAttribute
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak używać elementu PartialCachingAttribute. Ten przykład zawiera trzy części:

  • Klasa częściowa , ctlMinektóra dziedziczy z klasy bazowej UserControl i do której PartialCachingAttribute jest stosowany atrybut.

  • Kontrolka użytkownika używana z klasą częściową ctlMine .

  • Strona formularzy sieci Web hostujących kontrolkę użytkownika.

Pierwsza część przykładu przedstawia klasę częściową, która dziedziczy z klasy bazowej UserControl i do której PartialCachingAttribute jest stosowany atrybut. W tym przykładzie atrybut określa, że kontrolka użytkownika powinna być buforowana przez 20 sekund.

// [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

W drugiej części przykładu przedstawiono kontrolkę użytkownika używaną z poprzednim przykładem w celu zademonstrowania buforowania kontrolek użytkownika.

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

Trzecia część przykładu przedstawia stronę formularzy sieci Web hostujących kontrolkę użytkownika.

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

Uwagi

Klasa atrybutów PartialCachingAttribute oznacza kontrolki użytkownika (pliki ascx), które obsługują buforowanie fragmentów, i hermetyzuje ustawienia pamięci podręcznej, które ASP.NET używane podczas buforowania kontrolki. Deweloperzy stron i kontrolek używają atrybutu PartialCachingAttribute , aby włączyć buforowanie danych wyjściowych dla kontrolki użytkownika w pliku za pomocą kodu.

Użycie elementu PartialCachingAttribute to jeden z kilku sposobów włączania buforowania danych wyjściowych. Poniższa lista zawiera opis metod, których można użyć do włączenia buforowania danych wyjściowych.

  • @ OutputCache Użyj dyrektywy , aby włączyć buforowanie danych wyjściowych w scenariuszach deklaratywnych.

  • Użyj polecenia , PartialCachingAttribute aby włączyć buforowanie dla kontrolki użytkownika w pliku za pomocą kodu.

  • ControlCachePolicy Użyj klasy , aby programowo określić ustawienia pamięci podręcznej w scenariuszach programowych, w których pracujesz z BasePartialCachingControl wystąpieniami.

Jeśli kontrolka użytkownika zawiera dyrektywę @ OutputCache lub ma zastosowaną PartialCachingAttribute, analizator ASP.NET generuje wystąpienie klasy PartialCachingControl w celu opakowania kontrolki użytkownika.

Aby uzyskać więcej informacji na temat buforowania ASP.NET, zobacz Caching. Aby uzyskać więcej informacji na temat używania atrybutów, zobacz Atrybuty.

Konstruktory

Nazwa Opis
PartialCachingAttribute(Int32, String, String, String, Boolean)

Inicjuje nowe wystąpienie PartialCachingAttribute klasy, określając czas trwania buforowania, dowolne GET wartości i POST , nazwy kontrolek, niestandardowe wymagania dotyczące buforowania danych wyjściowych używane do zmieniania pamięci podręcznej oraz określa, czy dane wyjściowe kontrolki użytkownika mogą być udostępniane wielu stronom.

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

Inicjuje nowe wystąpienie PartialCachingAttribute klasy, określając czas trwania buforowania, dowolne GET wartości i POST , nazwy kontrolek, niestandardowe wymagania dotyczące buforowania danych wyjściowych używane do zmieniania pamięci podręcznej, zależności bazy danych i tego, czy dane wyjściowe kontrolki użytkownika mogą być współużytkowane z wieloma stronami.

PartialCachingAttribute(Int32, String, String, String)

Inicjuje nowe wystąpienie PartialCachingAttribute klasy, określając czas trwania buforowania, wszelkie wartości GET i POST, nazwy kontrolek i niestandardowe wymagania dotyczące buforowania danych wyjściowych używane do zmiany pamięci podręcznej.

PartialCachingAttribute(Int32)

Inicjuje nowe wystąpienie PartialCachingAttribute klasy o określonym czasie trwania przypisanym do kontrolki użytkownika do buforowania.

Właściwości

Nazwa Opis
Duration

Pobiera czas w sekundach, przez który buforowane elementy powinny pozostać w wyjściowej pamięci podręcznej.

ProviderName

Pobiera lub ustawia nazwę dostawcy używanego do przechowywania danych wyjściowych buforowanych dla skojarzonej kontrolki.

Shared

Pobiera wartość wskazującą, czy dane wyjściowe kontrolki użytkownika mogą być udostępniane wielu stronom.

SqlDependency

Pobiera rozdzielany ciąg, który identyfikuje jedną lub więcej par nazw bazy danych i tabeli, od których zależy buforowana kontrolka użytkownika.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.

(Odziedziczone po Attribute)
VaryByControls

Pobiera listę właściwości kontrolki użytkownika używanych przez pamięć podręczną danych wyjściowych w celu zmiany kontrolki użytkownika.

VaryByCustom

Pobiera listę ciągów niestandardowych, których będzie używać pamięć podręczna danych wyjściowych w celu zmiany kontrolki użytkownika.

VaryByParams

Pobiera listę parametrów ciągu zapytania lub formularza POST , które będą używane przez pamięć podręczną danych wyjściowych w celu zmiany kontrolki użytkownika.

Metody

Nazwa Opis
Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca kod skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

Nazwa Opis
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też