Asp.Netアプリケーションデータキャッシュ

7266 ワード

System.Web.Cachingネーミングスペースは、サーバ上でよく使用されるデータをキャッシュするクラスを提供します.このネーミングスペースにはCacheクラスが含まれています.このクラスは辞書で、ハッシュ・テーブルやデータセットなどの任意のデータ・オブジェクトを格納できます.また、これらのオブジェクトに無効な機能を提供し、これらのオブジェクトを追加および削除する方法も提供します.また、他のファイルまたはキャッシュ・アイテムに依存するオブジェクトを追加し、Cacheオブジェクトからオブジェクトを削除したときにコールバックを実行してアプリケーションに通知することもできます.
using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;



public partial class Default4 : System.Web.UI.Page

{

    /// <summary>

    ///            CacheKey Cache   

    /// </summary>

    /// <param name="CacheKey">    </param>

    /// <returns>      </returns>

    public static object GetCache(string CacheKey)

    {

        System.Web.Caching.Cache objCache = HttpRuntime.Cache;

        return objCache[CacheKey];

    }





    /// <summary>

    ///           CacheKey Cache   

    /// </summary>

    /// <param name="CacheKey">    </param>

    /// <param name="objObject">    </param>

    public static void SetCache(string CacheKey, object objObject)

    {

        System.Web.Caching.Cache objCache = HttpRuntime.Cache;

        objCache.Insert(CacheKey, objObject);

    }



    /// <summary>

    ///           CacheKey Cache   

    /// </summary>

    /// <param name="CacheKey">    </param>

    /// <param name="objObject">    </param>

    /// <param name="absoluteExpiration">      </param>

    /// <param name="slidingExpiration">                          </param>

    public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration)

    {

        System.Web.Caching.Cache objCache = HttpRuntime.Cache;

        objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration);

    }

    protected void Page_Load(object sender, EventArgs e)

    {

        string CacheKey = "cachetest"; 

        object objModel = GetCache(CacheKey);

        //          

        if (objModel == null)//         

        {        

            objModel = DateTime.Now;

            //                 

            if (objModel != null)        

            {            

                int CacheTime = 30;

                //    30             

                SetCache(CacheKey, objModel, DateTime.Now.AddSeconds(CacheTime), TimeSpan.Zero);

                //            

            }    

        }    

        Label1.Text = objModel.ToString();



    }



}