0

データベースからレンダリングされる Razor Views で動作する小さな CMS があります。いずれかのページを変更するまで、すべてが正常に機能しています。

ページが仮想パスに割り当てられると、MVC または がRazorViewEngineビューをキャッシュします。これは完全に理にかなっています。

ただし、誰かが変更を加えた場合、この特定のビューのキャッシュをクリアしたいと思います。また、ページをレンダリングする前にキャッシュをクリアしたいと思います。したがって、私のアイデアは、データベースのビューに「更新済み」DateTime情報を追加し (このフィールドは、テーブルの標準フィールドの 1 つであるため、とにかくそこにあります)、この日付を のエントリの CreateTime と比較することでしたHttpRuntime.Cache。VisualStudioにはCreationTimeがあることがわかりますが、この値に到達するためのリフレクションの経験はありません。

また、聞いたところによると、リフレクションはあまり高速ではなく、ページがレンダリングされるたびにリフレクションを実行する必要があると、ページの速度が低下します。

だから私の質問は、1.誰かがReflectionを使ってエントリからCreationTimeを取得するのを手伝ってくれますか、HttpRuntime.Cacheそれとも2.誰かがより良い方法を知っていますか?

4

1 に答える 1

0

私はMVCフレームワークの間違った場所にいました、私が求めていたのはのキャッシュです、VirtualPathProvider私は上書きしなければならないメソッドを見つけました。同じ問題に直面している人のために。

  • GetCacheDependency
  • GetFileHash
于 2013-02-22T12:42:52.010 に答える