PartialCachingAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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 formularzy sieci Web hostujących 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 |
PartialCachingAttribute(Int32, String, String, String, String, Boolean) |
Inicjuje nowe wystąpienie PartialCachingAttribute klasy, określając czas trwania buforowania, dowolne |
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 wyjściowa pamięć podręczna, 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 |
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() |
Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla 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) |