PartialCachingAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет атрибут метаданных, используемый пользовательскими элементами управления веб-форм (файлы .ascx) для индикации кэшируется ли их выход, и каким образом. Этот класс не наследуется.
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
- Наследование
- Атрибуты
Примеры
В следующем примере кода демонстрируется использование PartialCachingAttribute. Этот пример состоит из трех частей:
Разделяемый класс ,
ctlMine
который наследуется от UserControl базового класса и к которому PartialCachingAttribute применяется атрибут .Пользовательский элемент управления, используемый с разделяемым классом
ctlMine
.Страница веб-форм, на котором размещается пользовательский элемент управления.
В первой части примера показан разделяемый класс, который наследуется от UserControl базового класса и к которому PartialCachingAttribute применяется атрибут . В этом примере атрибут указывает, что пользовательский элемент управления должен кэшироваться в течение 20 секунд.
// [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
Во второй части примера показан пользовательский элемент управления, который используется в предыдущем примере для демонстрации кэширования пользовательского элемента управления.
<!-- 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" />
В третьей части примера показана страница веб-форм, на котором размещается пользовательский элемент управления.
<!-- 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>
Комментарии
Класс атрибута помечает PartialCachingAttribute пользовательские элементы управления (ASCX-файлы), поддерживающие кэширование фрагментов, и инкапсулирует параметры кэша, которые ASP.NET использует при кэшировании элемента управления. Разработчики страниц и элементов управления используют PartialCachingAttribute атрибут , чтобы включить кэширование выходных данных для пользовательского элемента управления в файле кода программной части.
PartialCachingAttribute Использование является одним из нескольких способов включения кэширования выходных данных. В следующем списке описаны методы, которые можно использовать для включения кэширования выходных данных.
Используйте директиву ,
@ OutputCache
чтобы включить кэширование выходных данных в декларативных сценариях.Используйте , PartialCachingAttribute чтобы включить кэширование для пользовательского элемента управления в файле кода программной части.
Используйте класс для программного ControlCachePolicy задания параметров кэша в программных сценариях, в которых выполняется работа с BasePartialCachingControl экземплярами.
Если пользовательский элемент управления содержит директиву @ OutputCache
или PartialCachingAttribute применяется, средство синтаксического анализа ASP.NET создает экземпляр класса для упаковки пользовательского PartialCachingControl элемента управления.
Дополнительные сведения о ASP.NET кэшировании см. в разделе Кэширование. Дополнительные сведения об использовании атрибутов см. в разделе Атрибуты.
Конструкторы
PartialCachingAttribute(Int32) |
Initializes a new instance of the PartialCachingAttribute с заданным временем кэширования пользовательского элемента управления. |
PartialCachingAttribute(Int32, String, String, String) |
Инициализирует новый экземпляр класса PartialCachingAttribute, задавая длительность кэширования, любые значения GET и POST, имена элементов управления и пользовательские требования к кэшированию, используемые для изменения кэша. |
PartialCachingAttribute(Int32, String, String, String, Boolean) |
Инициализирует новый экземпляр класса PartialCachingAttribute, определяющий длительность кэширования, любые значения |
PartialCachingAttribute(Int32, String, String, String, String, Boolean) |
Инициализирует новый экземпляр класса PartialCachingAttribute, определяющий длительность кэширования, любые значения |
Свойства
Duration |
Получает время в секундах, в течение которого кэшируемые элементы должны оставаться в кэше вывода. |
ProviderName |
Получает или задает имя поставщика, используемого для хранения кэшированных выходных данных для сопоставленного элемента управления. |
Shared |
Возвращает значение, указывающее, может ли выходной поток пользовательского элемента управления разделяться несколькими страницами. |
SqlDependency |
Возвращает строку с разделителям, содержащую список пар имен баз данных и таблиц, от которых зависит кэшированный пользовательский элемент управления. |
TypeId |
В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute. (Унаследовано от Attribute) |
VaryByControls |
Возвращает список свойств пользовательского элемента управления, используемых кэшем выходного потока для изменения пользовательского элемента управления. |
VaryByCustom |
Возвращает список пользовательских строк, используемых кэшем выходного потока для изменения пользовательского элемента управления. |
VaryByParams |
Возвращает список строк запроса или параметров |
Методы
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. (Унаследовано от Attribute) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от Attribute) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |