それで、コントローラーの単体テストの準備をしているときに、標準のキャッシュユーティリティを調べていて、MVCで直接有害と見なされるHttpRuntime.Cacheにアクセスしているのではないかと考えました。
テスト中にモックできるように、キャッシュのようなインターフェイス(はるかに単純)を実装するプロキシクラスでキャッシュをラップします。しかし、それが新しいフレームワークですでに行われているのではないかと思います。しかし、何も見つかりません。
これが私がそれを行う方法のアイデアです:
public ActionResult DoStuffLol(guid id)
{
var model = CacheUtil.GetOrCreateAndStore(
"DoStuffLolModel",
() =>
{
/* construct model here; time consuming stuff */
return model;
});
return View("DoStuffLol", model);
}
では、キャッシュにアクセスする古いパターンは変更されましたか?MVCでアクション結果をキャッシュするためのより良いパターンはありますか?