PartialCachingAttribute クラス
アセンブリ: System.Web (system.web.dll 内)

<AttributeUsageAttribute(AttributeTargets.Class)> _ Public NotInheritable Class PartialCachingAttribute Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class)] public sealed class PartialCachingAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class)] public ref class PartialCachingAttribute sealed : public Attribute

PartialCachingAttribute 属性クラスは、フラグメント キャッシュをサポートするユーザー コントロール (.ascx files) をマークし、ASP.NET がコントロールをキャッシュするときに使用するキャッシュ設定をカプセル化します。ページおよびコントロールの開発者は、PartialCachingAttribute 属性を使用して、分離コード ファイルのユーザー コントロールの出力キャッシュを有効にします。
PartialCachingAttribute の使用は、出力キャッシュを有効にできる複数の方法の 1 つです。出力キャッシュを有効にするために使用できる方法は、次のとおりです。
-
分離コード ファイルのユーザー コントロールのキャッシュを有効にするには、PartialCachingAttribute を使用します。
-
BasePartialCachingControl のインスタンスで処理を行うプログラムによってキャッシュの設定を指定するには、ControlCachePolicy クラスを使用します。
ユーザー コントロールに @ OutputCache ディレクティブが含まれているか、PartialCachingAttribute が適用されている場合、ASP.NET パーサーは、PartialCachingControl クラスのインスタンスを生成して、ユーザー コントロールをラップします。
ASP.NET のキャッシュの詳細については、「ASP.NET キャッシュ」を参照してください。属性の使用方法については、「属性を使用したメタデータの拡張」を参照してください。

PartialCachingAttribute を使用するコード例を次に示します。この例は、3 つの部分で構成されます。
-
UserControl から継承し、PartialCachingAttribute 属性の適用先となる部分クラス ctlMine。
-
ctlMine 部分クラスで使用するユーザー コントロール。
この例の最初の部分では、UserControl 基本クラスから継承し、PartialCachingAttribute 属性の適用先となる部分クラスを示しています。この例では、属性によって、ユーザー コントロールが 20 秒間キャッシュされることを指定しています。
' 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
この例の 2 番目の部分には、前述の例でユーザー コントロールのキャッシュ方法を示すために使用するユーザー コントロールを示しています。
<!-- 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" />
この例の 3 番目の部分では、ユーザー コントロールをホストする Web フォーム ページを示しています。
<!-- 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>


System.Attribute
System.Web.UI.PartialCachingAttribute


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PartialCachingAttribute メンバ
System.Web.UI 名前空間
UserControl
その他の技術情報
ASP.NET ユーザー コントロール
ASP.NET ページの一部だけのキャッシュ
@ OutputCache
Weblioに収録されているすべての辞書からPartialCachingAttribute クラスを検索する場合は、下記のリンクをクリックしてください。

- PartialCachingAttribute クラスのページへのリンク