3

私は自分のプロジェクトでMvcDonutCachingを使用しており、デバッグ/テスト中に支援するためにキャッシュをグローバルに無効にする方法を探しています。

ドキュメントでこれを達成する方法の例を見つけることができませんが、プロパティCacheSettingsManagerを公開する を見つけましたが、これは.IsCachingEnabledGloballyreadonly

このCacheSettingsManager設定を構成できるコンストラクターもありません。この設定を構成する方法はありますか?

うまくいくかもしれない(醜い)別の解決策がありますが、それは絶対的な最後の手段であり、実際には必要ではありません。

public class CustomOutputCache : DonutOutputCacheAttribute
{
    public CustomOutputCache()
    {
        if(ConfigurationManager.AppSettings["UseCache"] == "false")
        {
            base.NoStore = true;
            base.Duration = 0;
        }
    }
}

そして、これを私のコントローラーアクションで使用します:

[CustomOutputCache]
public ActionResult Homepage() 
{
    // etc...
}

これを行う正しい方法はありますか?

4

2 に答える 2

0

これは見苦しい解決策ですが、コンパイル フラグの使用を検討できます。何かのようなもの:

#if !DEBUG
[DonutOutputCache]
#endif      
public ActionResult Homepage() 
{
   // etc...
}

これにより、非デバッグ構成が選択されている場合にのみ属性がコンパイルされます。

于 2015-05-28T08:57:52.867 に答える