PartialCachingAttribute Klasa

Definicja

Definiuje atrybut metadanych, który Web Forms kontrolki użytkownika (pliki ascx) używane do wskazywania, czy i jak są buforowane ich 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 ma trzy części:

  • Klasa częściowa, ctlMine, któ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 Web Forms, która hostuje kontrolkę użytkownika.

Pierwsza część przykładu przedstawia częściową klasę, 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

Druga część przykładu przedstawia 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ę Web Forms, która hostuje 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 PartialCachingAttribute atrybutów 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 metody PartialCachingAttribute to jeden z kilku sposobów włączania buforowania danych wyjściowych. Na poniższej liście opisano metody, których można użyć do włączenia buforowania danych wyjściowych.

  • Użyj dyrektywy , @ OutputCache 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 kodem.

  • 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 PartialCachingControl klasy w celu opakowania kontrolki użytkownika.

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

Konstruktory

PartialCachingAttribute(Int32)

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

PartialCachingAttribute(Int32, String, String, String)

Inicjuje PartialCachingAttribute nowe wystąpienie 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 zmieniania pamięci podręcznej.

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

Inicjuje PartialCachingAttribute nowe wystąpienie 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 tego, 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.

Właściwości

Duration

Pobiera ilość czasu 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 Attributeelementu .

(Odziedziczone po Attribute)
VaryByControls

Pobiera listę właściwości kontrolki użytkownika, których używa pamięć podręczna danych wyjściowych, aby różnić kontrolkę użytkownika.

VaryByCustom

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

VaryByParams

Pobiera listę parametrów ciągu zapytania lub formularza POST , których będzie używać pamięć podręczna danych wyjściowych, aby zmienić kontrolkę użytkownika.

Metody

Equals(Object)

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

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

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

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu 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 Objectelementu .

(Odziedziczone po Object)
ToString()

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

(Odziedziczone po Object)

Jawne implementacje interfejsu

_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 dla obiektu, który może służyć do pobierania 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)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też