文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>贴个我写的.net里面cache的类的使用

贴个我写的.net里面cache的类的使用

时间:2010-09-15  来源:dukey's

DataCache.cs文件

 

代码  1 using System;
 2 using System.Web;
 3 
 4 namespace Common
 5 {
 6     /// <summary>
 7     /// 缓存相关的操作类
 8     /// zj
 9     /// 2006.4.1
10     /// </summary>
11     public class DataCache
12     {
13         /// <summary>
14         /// 获取当前应用程序指定CacheKey的Cache值
15         /// </summary>
16         /// <param name="CacheKey"></param>
17         /// <returns></returns>
18         public static object GetCache(string CacheKey)
19         {
20             System.Web.Caching.Cache objCache = HttpRuntime.Cache;
21             return objCache[CacheKey];
22         }
23 
24         /// <summary>
25         /// 设置当前应用程序指定CacheKey的Cache值
26         /// </summary>
27         /// <param name="CacheKey"></param>
28         /// <param name="objObject"></param>
29         public static void SetCache(string CacheKey, object objObject)
30         {
31             System.Web.Caching.Cache objCache = HttpRuntime.Cache;
32             objCache.Insert(CacheKey, objObject);
33         }
34 
35         /// <summary>
36         /// 设置当前应用程序指定CacheKey的Cache值
37         /// </summary>
38         /// <param name="CacheKey"></param>
39         /// <param name="objObject"></param>
40         public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration,TimeSpan slidingExpiration )
41         {
42             System.Web.Caching.Cache objCache = HttpRuntime.Cache;
43             objCache.Insert(CacheKey, objObject,null,absoluteExpiration,slidingExpiration);
44         }
45     }
46 }
47 

 

 

 

myweb.cs

 

代码  1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 
 5 namespace Common
 6 {
 7     public static class MyWeb
 8     {       
 9         /// <summary>
10         /// 缓存数据
11         /// </summary>
12         /// <param name="data">数据</param>
13         /// <param name="cachekey">缓存键值</param>
14         /// <param name="CacheMinutes">缓存时间,单位分</param>
15         /// <returns></returns>
16         public static object GetByCache(object data,string cachekey,int CacheMinutes)
17         {
18             object objModel = Common.DataCache.GetCache(cachekey);
19             if (objModel == null)
20             {
21                 try
22                 {
23                     objModel = data;
24                     if (objModel != null)
25                     {
26                         Common.DataCache.SetCache(cachekey, objModel, DateTime.Now.AddMinutes(CacheMinutes), TimeSpan.Zero);
27                     }
28                 }
29                 catch { }
30             }
31             return objModel;
32         }
33 
34     }
35 }
36 

 

 

实际应用:

下面是个读取一条新闻:

 

代码  #region 读取一条记录
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public LcShop.Shell.Entities.News GetModel(int newsId)
        {

            StringBuilder strSql = new StringBuilder();
            strSql.Append("select  top 1 newsId,title,sortId,coverImg,contents,isshow,CurTime,px,SiteID from News ");
            strSql.Append(" where newsId=@newsId ");
            SqlParameter[] parameters = {
                    new SqlParameter("@newsId", SqlDbType.Int,4)};
            parameters[0].Value = newsId;

            LcShop.Shell.Entities.News model = new LcShop.Shell.Entities.News();
            SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.WebConnectionString, CommandType.Text, strSql.ToString(), parameters);
            if(dr.Read())
            {
                if (dr["newsId"].ToString() != "")
                {
                    model.newsId = int.Parse(dr["newsId"].ToString());
                }
                model.title = dr["title"].ToString();
                if (dr["sortId"].ToString() != "")
                {
                    model.sortId = int.Parse(dr["sortId"].ToString());
                }
                if (dr["SiteID"].ToString() != "")
                {
                    model.SiteID = int.Parse(dr["SiteID"].ToString());
                }
                model.CoverImg = dr["CoverImg"].ToString();
                model.contents = dr["contents"].ToString();
                if (dr["isshow"].ToString() != "")
                {
                    if ((dr["isshow"].ToString() == "1") || (dr["isshow"].ToString().ToLower() == "true"))
                    {
                        model.isshow = true;
                    }
                    else
                    {
                        model.isshow = false;
                    }
                }
                if (dr["CurTime"].ToString() != "")
                {
                    model.cur_time = DateTime.Parse(dr["CurTime"].ToString());
                }
                if (dr["px"].ToString() != "")
                {
                    model.px = int.Parse(dr["px"].ToString());
                }
                dr.Dispose();
                return model;
            }
            else
            {
                dr.Dispose();
                return null;
            }
        }
        #endregion

 

 

使用缓存方法:

 

代码 1  public LcShop.Shell.Entities.News GetModelByCache(int newsId)
2         {
3             return Common.MyWeb.GetByCache(GetModel(newsId), "newsmodel-" + newsId, 180) as LcShop.Shell.Entities.News;
4         }

 

 

我个人认为,这样封装的话.如果要对数据用缓存很简单就构造了一个缓存取数据的方法.

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载