ControlCachePolicyとは? わかりやすく解説

ControlCachePolicy クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

ASP.NET ユーザー コントロール出力キャッシュ設定対する、プログラムによるアクセス手段提供します

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public NotInheritable Class
 ControlCachePolicy
Dim instance As ControlCachePolicy
public sealed class ControlCachePolicy
public ref class ControlCachePolicy sealed
public final class ControlCachePolicy
public final class ControlCachePolicy
解説解説

ControlCachePolicy クラスは、ユーザー コントロールプログラム作成するときに、ユーザー コントロール (.ascx ファイル) の出力キャッシュ設定指定するために開発者使用しますASP.NET では、ユーザー コントロールは BasePartialCachingControl インスタンス内に埋め込まれます。BasePartialCachingControl クラスは、出力キャッシュ有効になったユーザー コントロールを表すクラスです。PartialCachingControl コントロールの BasePartialCachingControl.CachePolicy プロパティアクセスすると、有効な ControlCachePolicy オブジェクトをいつでも受け取ることができます。ただし、UserControl コントロールの UserControl.CachePolicy プロパティアクセスする場合は、ユーザー コントロールが既に BasePartialCachingControl コントロールによってラップされている場合しか、有効な ControlCachePolicy オブジェクト受け取ることはできません。ユーザー コントロールラップされていない場合は、プロパティから返されControlCachePolicy オブジェクト操作しようとする例外スローさます。これは、このオブジェクト関連付けられた BasePartialCachingControl存在しないためです。UserControl インスタンスキャッシュサポートされているかどうかを、例外生成せずに判断するには、SupportsCaching プロパティ調べます

出力キャッシュ有効にできる方法1 つは、ControlCachePolicy クラス使用することです。出力キャッシュ有効にするために使用できる方法は、次のとおりです。

使用例使用例

実行時プログラムかユーザー コントロール動的に読み込み操作する方法次のコード例示しますPartialCachingAttribute 属性SimpleControl というユーザー コントロール適用されます。これは、ユーザー コントロール実行時PartialCachingControl コントロールによってラップされることを意味しますSimpleControl オブジェクトキャッシュ設定は、関連付けられた ControlCachePolicy オブジェクト (このオブジェクトラップする PartialCachingControl コントロールへの参照使用してアクセス可能) を通じてプログラムか操作できます。この例では、ページ初期化中に Duration プロパティ調べいくつかの条件満たした場合、SetSlidingExpiration メソッドと SetExpires メソッド使用して変更加えます

<%@ Page Language="VB" %>
<%@ Reference Control="SimpleControl.ascx" %>
<script language="VB" runat="server">

    ' The following example demonstrates how to load a user control
 dynamically at run time, and
    ' work with the ControlCachePolicy object associated with it.

    ' Loads and displays a UserControl defined in a seperate Logonform.ascx
 file.
    ' You need to have "SimpleControl.ascx" file in 
    ' the same directory as the aspx file. 

    Sub Page_Init(ByVal sender As
 Object, ByVal e As System.EventArgs)
    
        ' Obtain a PartialCachingControl object which wraps the 'LogOnControl'
 user control.
        Dim pcc As PartialCachingControl
        pcc = LoadControl("SimpleControl.ascx")
    
        ' If the control is slated to expire in greater than 60 Seconds
        If (pcc.CachePolicy.Duration > TimeSpan.FromSeconds(60))
 Then
            ' Make it expire faster. Set a new expiration time to 30
 seconds, and make it
            ' an absolute expiration if it isnt already.        
            pcc.CachePolicy.SetExpires(DateTime.Now.Add(TimeSpan.FromSeconds(30)))
            pcc.CachePolicy.SetSlidingExpiration(False)
        End If
        Controls.Add(pcc)
    End Sub
</script>
<%@ Page Language="C#" %>
<%@ Reference Control="SimpleControl.ascx" %>
<script language="C#" runat="server">

// The following example demonstrates how to load a user control dynamically
 at run time, and
// work with the ControlCachePolicy object associated with it.

// Loads and displays a UserControl defined in a seperate Logonform.ascx
 file.
// You need to have "SimpleControl.ascx" file in 
// the same directory as the aspx file. 

void Page_Init(object sender, System.EventArgs e) {
    
    // Obtain a PartialCachingControl object which wraps the 'LogOnControl'
 user control.
    PartialCachingControl pcc = LoadControl("SimpleControl.ascx") as PartialCachingControl;
        
    
    // If the control is slated to expire in greater than 60 Seconds
    if (pcc.CachePolicy.Duration > TimeSpan.FromSeconds(60)
 ) 
    {        
        // Make it expire faster. Set a new expiration time to 30 seconds,
 and make it
        // an absolute expiration if it isnt already.        
        pcc.CachePolicy.SetExpires(DateTime.Now.Add(TimeSpan.FromSeconds(30)));
        pcc.CachePolicy.SetSlidingExpiration(false);
    }                    
    Controls.Add(pcc);
}
</script>

Web フォーム ページから SimpleControl ユーザー コントロール使用する方法次のコード例示します。この例を正常に実行するには、ユーザー コントロール ファイル (.ascx)、それに対応する分離コード ファイル (.cs または .vb)、およびそのユーザー コントロール (.aspx) をホストする Web フォーム ページが同じディレクトリ内にあることを確認してください

Imports System.Data.SqlClient

Partial Class SimpleControl
    Inherits System.Web.UI.UserControl

    Protected Sub Page_Load(ByVal
 sender As Object, ByVal
 e As EventArgs)
        ItemsRemaining.Text = GetAvailableItems().ToString()
        CacheTime.Text = DateTime.Now.ToLongTimeString()
    End Sub

    Private Function GetAvailableItems() As
 Integer
        Dim sqlConnection As SqlConnection
        Dim sqlCommand As SqlCommand
        Dim items As Integer

        sqlConnection = New SqlConnection("Initial
 Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;")
        sqlCommand = sqlConnection.CreateCommand()
        sqlCommand.CommandType = Data.CommandType.StoredProcedure
        sqlCommand.CommandText = "GetRemainingItems"
        sqlConnection.Open()
        items = CInt(sqlCommand.ExecuteScalar())
        sqlConnection.Close()
        Return items
    End Function
End Class
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

[PartialCaching(100)]
public partial class SimpleControl : System.Web.UI.UserControl
{    
    protected void Page_Load(object sender,
 EventArgs e)
    {
        ItemsRemaining.Text = GetAvailableItems().ToString();
        CacheTime.Text = DateTime.Now.ToLongTimeString();
    }

    private int GetAvailableItems()
    {
        SqlConnection sqlConnection = new SqlConnection
            ("Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;");
        SqlCommand sqlCommand = sqlConnection.CreateCommand();
        sqlCommand.CommandType = CommandType.StoredProcedure;
        sqlCommand.CommandText = "GetRemainingItems";
        sqlConnection.Open();
        int items = (int)sqlCommand.ExecuteScalar();
        sqlConnection.Close();
        return items;
    }
}
<%@ Control Language="VB" AutoEventWireup="true"
 CodeFile="SimpleControl.ascx.vb" Inherits="SimpleControl"
 %>
<form>
<table cellspacing=15>
<tr>
<td><b>Available items: </b></td>
<td>
    <asp:Label ID="ItemsRemaining" runat="server"
 Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td><b>As of: </b></td>
<td>
    <asp:Label ID="CacheTime" runat="server"
 Text="Label"></asp:Label>
</td>
</tr>
</table>
</form>
<%@ Control Language="C#" AutoEventWireup="true"
 CodeFile="SimpleControl.ascx.cs" Inherits="SimpleControl" %>
<form>
<table cellspacing=15>
<tr>
<td><b>Available items: </b></td>
<td>
    <asp:Label ID="ItemsRemaining" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td><b>As of: </b></td>
<td>
    <asp:Label ID="CacheTime" runat="server" Text="Label"></asp:Label>
</td>
</tr>
</table>
</form>
継承階層継承階層
System.Object
  System.Web.UI.ControlCachePolicy
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ControlCachePolicy メンバ
System.Web.UI 名前空間
BasePartialCachingControl.CachePolicy プロパティ
UserControl.CachePolicy
その他の技術情報
@ OutputCache
ASP.NET ページ一部だけのキャッシュ

ControlCachePolicy プロパティ


ControlCachePolicy メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド SetExpires ユーザー コントロールラップする BasePartialCachingControl コントロールに対して指定され日時キャッシュ エントリの有効期限が切れるように指示します
パブリック メソッド SetSlidingExpiration ユーザー コントロールラップする BasePartialCachingControl コントロールに対してユーザー コントロールキャッシュ エントリで変化する有効期限または絶対有効期限使用されるように設定するよう指示します
パブリック メソッド SetVaryByCustom 出力キャッシュユーザー コントロール変更するために使用するカスタム文字列リスト設定します
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ControlCachePolicy クラス
System.Web.UI 名前空間
BasePartialCachingControl.CachePolicy プロパティ
UserControl.CachePolicy

その他の技術情報

@ OutputCache
ASP.NET ページ一部だけのキャッシュ

ControlCachePolicy メンバ

ASP.NET ユーザー コントロール出力キャッシュ設定対する、プログラムによるアクセス手段提供します

ControlCachePolicy データ型公開されるメンバを以下の表に示します


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド SetExpires ユーザー コントロールラップする BasePartialCachingControl コントロールに対して指定され日時キャッシュ エントリの有効期限が切れるように指示します
パブリック メソッド SetSlidingExpiration ユーザー コントロールラップする BasePartialCachingControl コントロールに対してユーザー コントロールキャッシュ エントリで変化する有効期限または絶対有効期限使用されるように設定するよう指示します
パブリック メソッド SetVaryByCustom 出力キャッシュユーザー コントロール変更するために使用するカスタム文字列リスト設定します
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ControlCachePolicy クラス
System.Web.UI 名前空間
BasePartialCachingControl.CachePolicy プロパティ
UserControl.CachePolicy

その他の技術情報

@ OutputCache
ASP.NET ページ一部だけのキャッシュ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ControlCachePolicy」の関連用語

ControlCachePolicyのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ControlCachePolicyのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS