1

私は.net 3.5を使用して、asp.net mvc Webアプリケーションを持っています

UI Logic レイヤーでキャッシュを使用したいと考えています。

について読みました

1-Cache Class

http://msdn.microsoft.com/en-us/library/system.web.caching.cache(v=vs.90).aspx

2-Caching with HTTP headers

http://www.dotnetperls.com/cache

違いは何なのか、どちらを使用すればよいのかわかりません。

さらに、それぞれでキャッシュを構成するにはどうすればよいですか?

項目 1- Web 構成のみ?

項目 2- プログラムでのみ ?

アップデート:

私が試してみました

System.Web.Caching の使用;

    private string GetTitlePerBDataId(Guid changeRequestDataId)
    {
        var key = string.Format("{0}_{1}", TITLE, changeRequestDataId);

        if (System.Web.Caching.Cache[key] == null)
        {
            Cache[key] = mBundlatorServiceHelper.GetData(changeRequestBundleDataId).Title;
        }

        return Convert.ToString(Cache[key]);           
    }

But got class name is not valid in this point以上Cache

4

1 に答える 1

4

Cache クラスは、サーバー上のメモリ キャッシュ内にあります。そこにオブジェクトやその他のものをキャッシュできます。

http ヘッダーによるキャッシングは、クライアント/プロキシが出力をキャッシュする方法を定義します。

System.Web.Caching.Cache のドキュメントを見ると、それは言う

このクラスのインスタンスに関する情報は、HttpContext オブジェクトの Cache プロパティまたは Page オブジェクトの Cache プロパティを通じて入手できます。

したがって、httpcontext を介してのみ使用できます。

private string GetTitlePerBDataId(Guid changeRequestDataId)
{
    var key = string.Format("{0}_{1}", TITLE, changeRequestDataId);

    if (System.Web.HttpContext.Current.Cache[key] == null)
    {
        System.Web.HttpContext.Current.Cache.Insert(key, mBundlatorServiceHelper.GetData(changeRequestBundleDataId).Title);
    }


    return Convert.ToString(System.Web.HttpContext.Current.Cache[key]);           
}
于 2012-04-24T13:31:00.080 に答える