PartialCachingAttribute Класс

Определение

Определяет атрибут метаданных, используемый пользовательскими элементами управления Web Forms (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 см. в разделе Caching. Дополнительные сведения об использовании атрибутов см. в разделе "Атрибуты".

Конструкторы

Имя Описание
PartialCachingAttribute(Int32, String, String, String, Boolean)

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

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

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

PartialCachingAttribute(Int32, String, String, String)

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

PartialCachingAttribute(Int32)

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

Свойства

Имя Описание
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)

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

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