次の方法で共有


ControlCachePolicy.SetExpires(DateTime) メソッド

定義

ユーザー コントロールをラップする BasePartialCachingControl コントロールに対して、指定された日時にキャッシュ エントリの有効期限が切れるように指示します。

public:
 void SetExpires(DateTime expirationTime);
public void SetExpires (DateTime expirationTime);
member this.SetExpires : DateTime -> unit
Public Sub SetExpires (expirationTime As DateTime)

パラメーター

expirationTime
DateTime

キャッシュ エントリの有効期限が切れる日時を示す DateTime

例外

ユーザー コントロールは、BasePartialCachingControl に関連付けられておらず、キャッシュに保存することはできません。

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

<%@ 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>
<%@ 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>

注釈

メソッド (渡しSetSlidingExpirationtrue) をSetExpires使用して、絶対有効期限ポリシーではなくスライディング有効期限キャッシュ ポリシーを使用するようにユーザー コントロールをラップするコントロールに指示BasePartialCachingControlします。 SetExpiresメソッドとメソッド (渡しfalse) をSetSlidingExpiration使用して、絶対有効期限ポリシーを指定します。

適用対象

こちらもご覧ください