Поделиться через


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
Атрибуты

Примеры

В следующем примере кода демонстрируется использование 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, определяющий длительность кэширования, любые значения GET и POST, имена элементов управления и требования к пользовательскому выходному кэшированию, используемые для изменения кэша.

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

Инициализирует новый экземпляр класса PartialCachingAttribute, определяющий длительность кэширования, любые значения GET и POST, имена элементов управления и требования к пользовательскому выходному кэшированию, используемые для изменения кэша, зависимости базы данных и признак, может ли выходной поток пользовательского элемента управления разделяться несколькими страницами.

Свойства

Duration

Получает время в секундах, в течение которого кэшируемые элементы должны оставаться в кэше вывода.

ProviderName

Получает или задает имя поставщика, используемого для хранения кэшированных выходных данных для сопоставленного элемента управления.

Shared

Возвращает значение, указывающее, может ли выходной поток пользовательского элемента управления разделяться несколькими страницами.

SqlDependency

Возвращает строку с разделителям, содержащую список пар имен баз данных и таблиц, от которых зависит кэшированный пользовательский элемент управления.

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.

(Унаследовано от Attribute)
VaryByControls

Возвращает список свойств пользовательского элемента управления, используемых кэшем выходного потока для изменения пользовательского элемента управления.

VaryByCustom

Возвращает список пользовательских строк, используемых кэшем выходного потока для изменения пользовательского элемента управления.

VaryByParams

Возвращает список строк запроса или параметров POST формы, используемых кэшем выходного потока для изменения пользовательского элемента управления.

Методы

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)

Применяется к

См. также раздел