Cache クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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) メソッド呼び出し内の |
NoSlidingExpiration |
Insert(String, Object) または Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) メソッド呼び出し内で |
プロパティ
Count |
キャッシュに格納されている項目の数を取得します。 |
EffectivePercentagePhysicalMemoryLimit |
ASP.NET によってキャッシュからの項目の削除が開始される前にアプリケーションで使用できる物理メモリの割合を取得します。 |
EffectivePrivateBytesLimit |
キャッシュに使用できるバイト数を取得します。 |
Item[String] |
指定したキーのキャッシュ項目を取得または設定します。 |
メソッド
Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
依存関係ポリシー、有効期限ポリシー、優先順位ポリシー、および挿入された項目が |
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) |
依存関係ポリシー、有効期限ポリシー、優先順位ポリシー、および挿入された項目が |
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) |
IEnumerable を IQueryable に変換します。 |
適用対象
スレッド セーフ
この型はスレッド セーフです。
こちらもご覧ください
.NET