Cache クラス

定義

Web アプリケーションのキャッシュを実装します。 このクラスは継承できません。

public ref class Cache sealed : System::Collections::IEnumerable
public sealed class Cache : System.Collections.IEnumerable
type Cache = class
    interface IEnumerable
Public NotInheritable Class Cache
Implements IEnumerable
継承
Cache
実装

次の例は、キャッシュ内の項目に割り当てられた値をユーザーに表示し、そのアイテムがキャッシュから削除されたときに通知するページです。 キャッシュ項目が RemovedCallback 削除されたときにユーザーに通知するデリゲートのシグネチャを CacheItemRemovedCallback 持つメソッドを作成し、 列挙を CacheItemRemovedReason 使用して削除された理由を伝えます。 さらに、 プロパティを Cache.Item[] 使用してオブジェクトをキャッシュに追加し、それらのオブジェクトの値を取得します。 メソッドでは、 AddItemToCache メソッドを Cache.Add 使用してキャッシュに項目を追加します。 デリゲートを CacheItemRemovedCallback 使用するには、このメソッドまたは Cache.Insert メソッドを使用してアイテムをキャッシュに追加する必要があります。これにより、ASP.NET は、アイテムが削除されたときに適切なメソッド呼び出しを自動的に行うことができます。 カスタム RemoveItemFromCache メソッドは、 メソッドを Cache.Remove 使用してキャッシュから項目を明示的に削除し、 メソッドを RemovedCallback 呼び出します。

注意

次のスニペットによってアクセスされる Cache のインスタンスは、このサンプルが継承する Page オブジェクトのメンバーです。

<html>
 <Script runat=server language="C#">
// <snippet2>
    static bool itemRemoved = false;
    static CacheItemRemovedReason reason;
    CacheItemRemovedCallback onRemove = null;

    public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){
      itemRemoved = true;
      reason = r;
    }
// </snippet2>

// <snippet3>
    public void AddItemToCache(Object sender, EventArgs e) {
        itemRemoved = false;

        onRemove = new CacheItemRemovedCallback(this.RemovedCallback);

        if (Cache["Key1"] == null)
          Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
    }
// </snippet3>

// <snippet4>
    public void RemoveItemFromCache(Object sender, EventArgs e) {
        if(Cache["Key1"] != null)
          Cache.Remove("Key1");
    }
// </snippet4>
 </Script>
 <body>
  <Form runat="server">
   <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
   <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
  <% if (itemRemoved) {
        Response.Write("RemovedCallback event raised.");
        Response.Write("<BR>");
        Response.Write("Reason: <B>" + reason.ToString() + "</B>");
     }
     else {
// <snippet5>
        Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");
// </snippet5>
     }
  %>
 </body>
</html>
<%@ Page Language="VB" %>

<html>
 <Script runat=server>
' <snippet2>
    Shared itemRemoved As boolean = false
    Shared reason As CacheItemRemovedReason
    Dim onRemove As CacheItemRemovedCallback

    Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason)
      itemRemoved = true
      reason = r
    End Sub
' </snippet2>

' <snippet3>
    Public Sub AddItemToCache(sender As Object, e As EventArgs)
        itemRemoved = false

        onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)

        If (IsNothing(Cache("Key1"))) Then
          Cache.Add("Key1", "Value 1", Nothing, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove)
        End If
    End Sub
' </snippet3>

' <snippet4>
    Public Sub RemoveItemFromCache(sender As Object, e As EventArgs)
        If (Not IsNothing(Cache("Key1"))) Then
          Cache.Remove("Key1")
        End If
    End Sub
' </snippet4>
 </Script>

 <body>
  <Form runat="server">
    <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
    <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
<%
If (itemRemoved) Then
    Response.Write("RemovedCallback event raised.")
    Response.Write("<BR>")
    Response.Write("Reason: <B>" + reason.ToString() + "</B>")
Else
' <snippet5>
    Response.Write("Value of cache key: <B>" + Server.HtmlEncode(CType(Cache("Key1"),String)) + "</B>")
' </snippet5>
End If
%>
 </body>
</html>

注釈

このクラスのインスタンスは、アプリケーション ドメインごとに 1 つ作成され、アプリケーション ドメインがアクティブなままである限り有効なままになります。 このクラスのインスタンスに関する情報は、 オブジェクトの プロパティまたは オブジェクトの HttpContext プロパティをPageCache通じてCache使用できます。

注意

クラスは Cache 、ASP.NET アプリケーションの外部で使用することを目的としていません。 Web アプリケーションのキャッシュを提供するために、ASP.NET で使用するように設計およびテストされました。 コンソール アプリケーションやWindows フォーム アプリケーションなど、他の種類のアプリケーションの場合は、 クラスをObjectCache使用します。

コンストラクター

Cache()

Cache クラスの新しいインスタンスを初期化します。

フィールド

NoAbsoluteExpiration

Insert(String, Object) メソッド呼び出し内の absoluteExpiration パラメーターで使用され、項目の有効期限が切れないことを示します。 このフィールドは読み取り専用です。

NoSlidingExpiration

Insert(String, Object) または Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) メソッド呼び出し内で slidingExpiration パラメーターとして使用され、スライド式有効期限を無効にします。 このフィールドは読み取り専用です。

プロパティ

Count

キャッシュに格納されている項目の数を取得します。

EffectivePercentagePhysicalMemoryLimit

ASP.NET によってキャッシュからの項目の削除が開始される前にアプリケーションで使用できる物理メモリの割合を取得します。

EffectivePrivateBytesLimit

キャッシュに使用できるバイト数を取得します。

Item[String]

指定したキーのキャッシュ項目を取得または設定します。

メソッド

Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

依存関係ポリシー、有効期限ポリシー、優先順位ポリシー、および挿入された項目が Cache から削除されたことをアプリケーションに通知するために使用できるデリゲートを指定して、Cache オブジェクトに指定の項目を追加します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Get(String)

Cache オブジェクトから指定した項目を取得します。

GetEnumerator()

キャッシュに含まれているキーの設定と値を介して反復処理するために使用されているディクショナリ列挙子を取得します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
Insert(String, Object)

項目の位置を参照するキャッシュ キーを指定し、CacheItemPriority 列挙体が提供する既定値を使用して、Cache オブジェクトに項目を挿入します。

Insert(String, Object, CacheDependency)

ファイル依存関係またはキー依存関係を持つオブジェクトを Cache に挿入します。

Insert(String, Object, CacheDependency, DateTime, TimeSpan)

依存関係ポリシーと有効期限ポリシーを指定して、Cache にオブジェクトを挿入します。

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

依存関係ポリシー、有効期限ポリシー、優先順位ポリシー、および挿入された項目が Cache から削除されたことをアプリケーションに通知するために使用できるデリゲートを指定して、Cache オブジェクトにオブジェクトを挿入します。

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

依存関係、有効期限ポリシー、およびキャッシュから項目が削除される前のアプリケーションへの通知に使用できるデリゲートを指定して、Cache オブジェクトにオブジェクトを挿入します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Remove(String)

アプリケーションの Cache オブジェクトから、指定した項目を削除します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

IEnumerable.GetEnumerator()

Cache オブジェクト コレクションを反復処理できる列挙子を返します。

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。

適用対象

スレッド セーフ

この型はスレッド セーフです。

こちらもご覧ください