ASP.NET - アプリケーションデータのキャッシュのサンプル

ASP.NETでアプリケーションデータのキャッシュについて少し試してみました。

アプリケーション データのキャッシュ

例として、App_Dataフォルダ内にあるSample.txtの内容をキャッシュするコードを書いてみました。たいしたサンプルでありませんが、せっかくなので残しておきます。

public class HomeController : Controller {
    public ActionResult Index() {
        var cache = HttpContext.Cache;
        var key = "key";

        if(cache[key] == null) {
            var path = Server.MapPath("~/App_Data/Sample.txt");
            var text = System.IO.File.ReadAllText(path);
            cache.Insert(key, text, new CacheDependency(path));
        }

        return Content((string)cache[key]);
    }
}

データをキャッシュするにはCacheクラスを使用します。使い方は特に説明なくてもいけそうですね。

Cache クラス (System.Web.Caching)

また、CacheDependencyクラスを使って、キャッシュとファイルの依存関係を設定しています。このCacheDependencyクラスを利用することで、配置したSample.txtを何かのタイミングで更新した際に、キャッシュが自動的に削除されるようになります。コンストラクタで指定したファイルの変更が監視されるんですね。

CacheDependency クラス (System.Web.Caching)