コンテキスト: .Net 3.5、C#
コンソール アプリケーションにキャッシュ メカニズムが必要です。
車輪を再発明する代わりに、使用したいと思いますSystem.Web.Caching.Cache
(これは最終決定です。他のキャッシング フレームワークは使用できません。理由は聞かないでください)。
ただし、System.Web.Caching.Cache
有効な HTTP コンテキストでのみ実行されるようになっているようです。私の非常に単純なスニペットは次のようになります。
using System;
using System.Web.Caching;
using System.Web;
Cache c = new Cache();
try
{
c.Insert("a", 123);
}
catch (Exception ex)
{
Console.WriteLine("cannot insert to cache, exception:");
Console.WriteLine(ex);
}
結果は次のとおりです。
キャッシュに挿入できません。例外: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。 System.Web.Caching.Cache.Insert (文字列キー、オブジェクト値) で MyClass.RunSnippet() で
明らかに、私はここで何か間違ったことをしています。何か案は?
更新HttpRuntime.Cache
:ほとんどの回答に+1、静的メソッドを介してキャッシュを取得するのが正しい使い方HttpContext.Current.Cache
です。皆さん、ありがとうございました!