Freigeben über


PartialCachingAttribute-Klasse

Definiert die Metadatenattribute, die Web Forms-Benutzersteuerelemente (ASCX-Dateien) verwenden, um anzugeben, ob und wie ihre Ausgabe zwischengespeichert wird. Diese Klasse kann nicht vererbt werden.

Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.Class)> _
Public NotInheritable Class PartialCachingAttribute
    Inherits Attribute
'Usage
Dim instance As PartialCachingAttribute
[AttributeUsageAttribute(AttributeTargets.Class)] 
public sealed class PartialCachingAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class)] 
public ref class PartialCachingAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Class) */ 
public final class PartialCachingAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Class) 
public final class PartialCachingAttribute extends Attribute

Hinweise

Die PartialCachingAttribute-Attributklasse kennzeichnet Benutzersteuerelemente (ASCX-Dateien), die das Zwischenspeichern von Fragmenten unterstützen, und kapselt die Cacheeinstellungen, die von ASP.NET beim Zwischenspeichern des Steuerelements verwendet werden. Mit dem PartialCachingAttribute-Attribut können Seiten- und Steuerelemententwickler Ausgabecaches für ein Benutzersteuerelement in einer CodeBehind-Datei aktivieren.

Das PartialCachingAttribute stellt nur eine von mehreren Möglichkeit dar, um Ausgabecaches zu aktivieren. Die folgende Liste beschreibt Methoden, mit denen Sie Ausgabecaches aktivieren können.

  • Verwenden Sie die @ OutputCache-Direktive, um Ausgabecaches in Deklarationen zu aktivieren.

  • Mit PartialCachingAttribute können Sie Caches für ein Benutzersteuerelement in einer CodeBehind-Datei aktivieren.

  • Geben Sie mit der ControlCachePolicy-Klasse die Cacheeinstellungen programmgesteuert in programmgesteuerten Szenarien an, bei denen Sie BasePartialCachingControl-Instanzen verwenden.

Wenn ein Benutzersteuerelement eine @ OutputCache-Direktive enthält oder das PartialCachingAttribute-Attribut auf dieses angewendet wurde, generiert der ASP.NET-Parser eine Instanz der PartialCachingControl-Klasse als Wrapper für das Benutzersteuerelement.

Weitere Informationen über ASP.NET-Caches finden Sie unter ASP.NET-Zwischenspeicherung. Weitere Informationen über das Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Thema Position
Gewusst wie: Zwischenspeichern mehrerer Versionen eines Benutzersteuerelements mithilfe deklarativer Attribute Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Zwischenspeichern von mehreren Versionen eines Benutzersteuerelements auf der Basis von Parametern Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Zwischenspeichern mehrerer Versionen eines Benutzersteuerelements mithilfe deklarativer Attribute Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Zwischenspeichern von mehreren Versionen eines Benutzersteuerelements auf der Basis von Parametern Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Zwischenspeichern mehrerer Versionen eines Benutzersteuerelements mithilfe deklarativer Attribute Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Zwischenspeichern von mehreren Versionen eines Benutzersteuerelements auf der Basis von Parametern Erstellen von ASP.NET-Webanwendungen

Beispiel

Im folgenden Codebeispiel wird die Verwendung des PartialCachingAttribute veranschaulicht. Dieses Beispiel besteht aus drei Teilen:

  • Einer partiellen Klasse ctlMine, die von der UserControl-Basisklasse abgeleitet wird und auf die das PartialCachingAttribute-Attribut angewendet wird.

  • Einem Benutzersteuerelement, das mit der partiellen ctlMine-Klasse verwendet wird.

  • Einer Web Forms-Seite, die als Host für das Benutzersteuerelement verwendet wird.

Im ersten Teil des Beispiels wird eine partielle Klasse veranschaulicht, die von der UserControl-Basisklasse geerbt ist und auf die das PartialCachingAttribute-Attribut angewendet wird. In diesem Beispiel gibt das Attribut an, dass das Benutzersteuerelement für 20 Sekunden zwischengespeichert werden soll.

' 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
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 'Page_Load 
    End Class 'ctlMine
End Namespace
// [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 partialcache.jsl]
// 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.
import System.*;  
import System.IO.*;  
import System.Data.*;  
import System.Web.*;  
import System.Web.UI.*;  
import System.Web.UI.WebControls.*;  

// Set the PartialCachingAttribute.Duration property to 20 seconds.
/** @attribute PartialCaching(20)
 */
public class ctlMine extends UserControl 
{    
    public DataGrid myDataGrid;
    public Label timeMsg;

    protected void Page_Load(Object src, EventArgs e)
    {
        DataSet ds = new DataSet();
        FileStream fs = new FileStream(get_Server().MapPath("schemadata.xml"),
            FileMode.Open, FileAccess.Read);
        StreamReader reader = new StreamReader(fs);
        ds.ReadXml(reader);
        fs.Close();
        DataView source = new DataView(ds.get_Tables().get_Item(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.set_Text("<h6><font face=verdana>Caching an XML Table: " 
            + source.get_Table().get_TableName() + " </font></h6>");
        myDataGrid.set_DataSource(source);
        myDataGrid.DataBind();
        timeMsg.set_Text(DateTime.get_Now().ToString("G"));
    } //Page_Load 
} //ctlMine

Der zweite Teil des Beispiels zeigt ein Benutzersteuerelement, das zusammen mit dem vorherigen Beispiel verwendet wird, um die Zwischenspeicherung bei Benutzersteuerelementen zu veranschaulichen.

<!-- 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-Name="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaadd"
    EnableViewState="false"
  />

  <p>

  <i>Control last generated on:</i> <asp:label id="TimeMsg" runat="server" />
<!-- 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-Name="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaadd"
    EnableViewState="false"
  />

  <p>

  <i>Control last generated on:</i> <asp:label id="TimeMsg" runat="server" />
// The mark-up .ascx file that displays the output of
// the partialcache.jsl user control code-behind file.
<%@ Control language=VJ# inherits="ctlMine" src="partialcache.jsl" %>

  <ASP:DataGrid id="myDataGrid" runat="server"
    Width="900"
    BackColor="#ccccff"
    BorderColor="black"
    ShowFooter="false"
    CellPadding=3
    CellSpacing="0"
    Font-Name="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaadd"
    EnableViewState="false"
  />

  <p>

  <i>Control last generated on:</i> <asp:label id="timeMsg" runat="server" />

Im dritten Teil des Beispiels wird eine Web Forms-Seite veranschaulicht, die als Host für das Benutzersteuerelement verwendet wird.

<!-- The WebForms page that contains the user control generated
     by partialcache.vb. -->
<%@ Register TagPrefix="Acme" TagName="Cache" Src="partialcache.vb.ascx" %>

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

<body>
  
  <form 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.cs. -->
<%@ Register TagPrefix="Acme" TagName="Cache" Src="partialcache.cs.ascx" %>

<html>
<script language="C#" runat="server">

      void Page_Load(Object Src, EventArgs E ) {

          TimeMsg.Text = DateTime.Now.ToString("G");
      }

  </script>

<body>
  
  <form 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.jsl.
<%@ Register TagPrefix="Acme" TagName="Cache" Src="partialcache.jsl.ascx" %>

<html>
<script language="VJ#" runat="server">

void Page_Load(Object src, EventArgs e ) 
{
    TimeMsg.set_Text(DateTime.get_Now().ToString("G"));
} //Page_Load

  </script>

<body>
  
  <form runat=server>
    <Acme:Cache runat=server/>
    <br>

    <i>Page last generated on:</i> <asp:label id="TimeMsg" runat="server" />

  </form>
</body>
</html>

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
   System.Attribute
    System.Web.UI.PartialCachingAttribute

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

PartialCachingAttribute-Member
System.Web.UI-Namespace
UserControl

Weitere Ressourcen

ASP.NET-Benutzersteuerelemente
Zwischenspeichern von Teilen einer ASP.NET-Seite
@ OutputCache