次の方法で共有


キャッシュへのアイテムの追加

Cache オブジェクトにアイテムを追加するには、3 つの方法があります。アプリケーションの必要条件に応じて、簡単な方法から複雑な方法までを選択できます。

Cache による清掃、有効期限、および依存関係のサポートを利用する場合は、Cache.Insert メソッドまたは Cache.Add メソッドを使用する必要があります。

メモ   Add メソッドと Insert メソッドは同じシグネチャを持っていますが、これら 2 つのメソッドには若干の違いがあります。第 1 に、Add メソッドの呼び出しでは、キャッシュされたアイテムを表すオブジェクトが返されますが、Insert メソッドの呼び出しでは、このオブジェクトは返されません。第 2 に、これら 2 つのメソッドを呼び出し、既に Cache に格納されているアイテムを Cache に追加した場合、これらのメソッドの動作は異なります。Insert メソッドの場合、アイテムは置換されますが、Add メソッドの場合は失敗します。

アイテムのキーと値を指定して Cache に追加するには

  • アイテムのキーと値を指定してディクショナリに追加する場合と同じ方法で、アイテムをキャッシュに追加できます。テキスト ボックスの現在の Value プロパティを Cache に追加するコードを次に示します。

    Cache("txt1") = txtName.value
    [C#]
    Cache["txt1"] = txtName.value;
    

Insert メソッドを使用してアイテムを Cache に追加するには

  • 使用しているバージョンのパラメータ値を定義できるように、Insert メソッドをオーバーロードします。たとえば、1 つのアイテムのキーと値だけを追加するには、次のコードを使用します。

    Cache.Insert("MyData1", connectionString)
    [C#]
    Cache.Insert("MyData1", connectionString); 
    

Add メソッドを使用してアイテムを Cache に追加するには

  • Add メソッドは、Insert メソッドと同じシグネチャを持っていますが、追加したアイテムを表すオブジェクトを返します。

    Cache.Add("MyData1", connectionString)
    [C#]
    Cache.Add("MyData1", connectionString); 
    

いずれのメソッドでも、アイテムが Cache に保持されているときの条件を詳細に制御できます。いずれのメソッドも、キャッシュされているアイテムを外部のファイルやディレクトリ、Cache 内のほかのキー、またはそれらの配列に依存させることができます。依存関係を持つ Cache にアイテムを追加すると、定義した依存関係の変更を追跡する CacheDependency クラスのインスタンスが生成されます。定義されている依存関係に対して削除や移動、またはその他の変更が行われた場合、それらの依存関係が関連付けられているアイテムは Cache から削除されます。

依存関係を持つ Cache にアイテムを追加するには

  • 依存関係を持つ Cache にアイテムを追加するには、Add メソッドまたは Insert メソッドの dependencies パラメータを使用します。Insert メソッドを使用して、XML ファイルに対する依存関係を持つアイテムを Cache 追加する例を次に示します。

    Cache.Insert("MyData1", connectionString, new CacheDependency(Server.MapPath(\\myServer\myConfig.xml)));
    [Visual Basic]
    Cache.Insert("MyData1", connectionString, new CacheDependency(Server.MapPath(\\myServer\myConfig.xml)))
    

有効期限ポリシーを設定した Cache にアイテムを追加するには

  • 有効期限ポリシーを設定した Cache にアイテムを追加するには、absoluteExpiration パラメータおよび slidingExpiration パラメータを使用します。絶対有効期限または変化する有効期限のいずれかを定義できますが、両方は定義できません。これらいずれかのパラメータを指定して有効期限ポリシーを定義する場合は、もう一方のパラメータを 0 に設定する必要があります。Cache クラスでは、この処理を自動的に行うフィールドとして NoAbsoluteExpirationNoSlidingExpiration の 2 つを定義しています。絶対有効期限または変化する有効期限を定義するときに、適切なパラメータを対応するフィールド値に設定します。Insert メソッドを使用して、Cache に 2 分間の絶対有効期限を持つアイテムを追加する例を次に示します。

    Cache.Insert("MyData1", connectionString, null, DateTime.Now.AddMinutes(2),  NoSlidingExpiration);
    [Visual Basic]
    Cache.Insert("MyData1", connectionString, null, DateTime.Now.AddMinutes(2),  NoSlidingExpiration)
    

    Insert メソッドを使用して、30 秒間の変化する有効期限を持つ Cache にアイテムを追加するコードを次に示します。

    Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30));
    [Visual Basic]
    Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30))
    

    メモ   絶対有効期限を設定する場合は、DateTime 構造体を使用します。変化する有効期限を設定する場合は、TimeSpan 構造体を使用します。0 未満または 1 年を超える変化する有効期限を設定すると、ArgumentOutOfRangeException Class がスローされます。

Add メソッドまたは Insert メソッドを使用すると、CacheItemPriority 列挙型からの値を指定することで、キャッシュされたアイテムの相対的な重要性を定義することもできます。これらの相対的優先度は、Web サーバーがメモリを解放するための清掃を行うときに利用されます。これにより、優先度の低いアイテムを優先度の高いアイテムよりも先に Cache から削除できます。

優先度を設定したアイテムを Cache に追加するには

  • 優先度を設定したアイテムを Cache に追加するには、Add メソッドまたは Insert メソッドで priority パラメータを使用します。priorityHigh を設定して、Cache にアイテムを Add メソッドを使用して追加する例を次に示します。

    Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null);
    [Visual Basic]
    Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null)  
    

これらのメソッドを使用すると、キャッシュからアイテムがいつ削除されるかを CacheItemRemovedCallback デリゲートを使用してアプリケーションに通知することもできます。完全な例については、「キャッシュからアイテムが削除されたときのアプリケーションへの通知」を参照してください。

参照

アプリケーション データのキャッシュ | キャッシュされたアイテムの値の取得 | キャッシュからのアイテムの削除 | キャッシュからアイテムが削除されたときのアプリケーションへの通知