分享通用基类库-C#通用缓存类

/*************************************************************************************
 * 代码:吴蒋
 * 时间:2012.03.30
 * 说明:缓存公共基类
 * 其他:
 * 修改人:
 * 修改时间:
 * 修改说明:
 ************************************************************************************/
 using System;
 using System.Web.Caching;
 
 namespace Common
 {
     public class DacheHelp
     {
          protected static volatile System.Web.Caching.Cache webCache = System.Web.HttpRuntime.Cache;
 
         /// <summary>
 /// 默认缓存存活期为3600秒(1小时)
 /// </summary>
         protected int _timeOut = 3600;
 
         private static object syncObj = new object();
 
         /// <summary>
 /// 构造函数
 /// </summary>
         static DacheHelp()
         {   
         }
         
         
         /// <summary>
 /// 设置到期相对时间[单位: 秒] 
 /// </summary>
         public virtual int TimeOut
         {
             set { _timeOut = value > 0 ? value : 3600; }
             get { return _timeOut > 0 ? _timeOut : 3600; }
         }
 
 
         /// <summary>
 /// 静态构造函数
 /// </summary>
         public static System.Web.Caching.Cache GetWebCacheObj
         {
             get { return webCache; }
         }
         
         /// <summary>
 /// 加入当前对象到缓存中
 /// </summary>
 /// <param name="objId">对象的键值</param>
 /// <param name="o">缓存的对象</param>
         public virtual void AddObject(string objId, object o)
         {    
             if (objId == null || objId.Length == 0 || o == null)
             {
                 return;
             }
 
             CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove);
 
             if (TimeOut == 7200)
             {
                 webCache.Insert(objId, o, null, DateTime.MaxValue, TimeSpan.Zero, System.Web.Caching.CacheItemPriority.High, callBack);
             }
             else
             {
                 webCache.Insert(objId, o, null, DateTime.Now.AddSeconds(TimeOut), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.High, callBack);
             }
         }
 
         /// <summary>
 /// 加入当前对象到缓存中
 /// </summary>
 /// <param name="objId">对象的键值</param>
 /// <param name="o">缓存的对象</param>
         public virtual void AddObjectWith(string objId, object o)
         {
             if (objId == null || objId.Length == 0 || o == null)
             {
                 return;
             }
 
             CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove);
 
             webCache.Insert(objId, o, null, System.DateTime.Now.AddSeconds(TimeOut), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.High, callBack);
         }
         
 
         /// <summary>
 /// 加入当前对象到缓存中,并对相关文件建立依赖
 /// </summary>
 /// <param name="objId">对象的键值</param>
 /// <param name="o">缓存的对象</param>
 /// <param name="files">监视的路径文件</param>
         public virtual void AddObjectWithFileChange(string objId, object o, string[] files)
         {
             if (objId == null || objId.Length == 0 || o == null)
             {
                 return;
             }
 
             CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove);
 
                CacheDependency dep = new CacheDependency(files, DateTime.Now);
 
             webCache.Insert(objId, o, dep, System.DateTime.Now.AddSeconds(TimeOut), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.High, callBack);
         }
     
 
 
         /// <summary>
 /// 加入当前对象到缓存中,并使用依赖键
 /// </summary>
 /// <param name="objId">对象的键值</param>
 /// <param name="o">缓存的对象</param>
 /// <param name="dependKey">依赖关联的键值</param>
         public virtual void AddObjectWithDepend(string objId, object o, string[] dependKey)
         {
             if (objId == null || objId.Length == 0 || o == null)
             {
                 return;
             }
 
             CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove);
 
             CacheDependency dep = new CacheDependency(null, dependKey, DateTime.Now);
 
             webCache.Insert(objId, o, dep, System.DateTime.Now.AddSeconds(TimeOut), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.High, callBack);
         }
 
         /// <summary>
 /// 建立回调委托的一个实例
 /// </summary>
 /// <param name="key"></param>
 /// <param name="val"></param>
 /// <param name="reason"></param>
         public void onRemove(string key, object val, CacheItemRemovedReason reason)
         {
             switch (reason)
             {
                 case CacheItemRemovedReason.DependencyChanged:
                     break;
                 case CacheItemRemovedReason.Expired:
                     {
                         //CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(this.onRemove);
 
 //webCache.Insert(key, val, null, System.DateTime.Now.AddMinutes(TimeOut),
 //    System.Web.Caching.Cache.NoSlidingExpiration,
 //    System.Web.Caching.CacheItemPriority.High,
 //    callBack);
                         break;
                     }
                 case CacheItemRemovedReason.Removed:
                     {
                         break;
                     }
                 case CacheItemRemovedReason.Underused:
                     {
                         break;
                     }
                 default: break;
             }
             //如需要使用缓存日志,则需要使用下面代码
 //myLogVisitor.WriteLog(this,key,val,reason);            
         }
 
         /// <summary>
 /// 删除缓存对象
 /// </summary>
 /// <param name="objId">对象的关键字</param>
         public virtual void RemoveObject(string objId)
         {
             if (objId == null || objId.Length == 0)
             {
                 return;
             }
             webCache.Remove(objId);
         }
 
 
         /// <summary>
 /// 返回一个指定的对象
 /// </summary>
 /// <param name="objId">对象的关键字</param>
 /// <returns>对象</returns>
         public virtual object RetrieveObject(string objId)
         {
             if (objId == null || objId.Length == 0)
             {
                 return null;
             }            
             return webCache.Get(objId);
         }
     }
 }

通信相关 1.C#HttpHelper,Httpwebrequest,请求时无视编码,无视证书,无视Cookie,网页抓取 访问数据库相关 1.SqlHelper 2.一个操作Sql2005数据库的(备份,还原,分离,附加,添加删除用户等操作) 帮助 1.最新的Functions 2.最新的 PageValidate 3.JavascriptHelp 4.最新的皮肤帮助 UI_Misc_Helper JavaScript|Jquery相关 1.jQuery.cookie帮助 访问系统相关 1.C#计算机信息ComputerInfo 2.Api_Win32_Mac工具包 3.在c#程序中放音乐的帮助 GDI+相关,图像相关 1.生成缩略图的文件SmallImage C#基础库 1.Chart图形 Assistant创建显示图像的标签和文件 OWCChart统计图的封装 2.Cookie&Session;&Cache;缓存帮助 CacheHelper C#操作缓存的帮助 CookieHelper C#操作Cookie的帮助,添加,删除,修改,清理 SessionHelper C#关于Session的操作,获取,设置,删除 SessionHelper2 C#关于Session的一些高级操作,比如取对象,取数据等等 3.CSV文件转换 CsvHelper CSV文件导入DataTable和DataTable导出到Csv 4.DEncrypt 加密/解密帮助 DEncrypt C# DEncrypt加密/解密帮助 DESEncrypt Encrypt HashEncode MySecurity RSACryption 5.DLL COM.Excel.dll Excel.dll ICSharpCode.SharpZipLib.dll itextsharp.dll Microsoft.Office.Interop.Owc11.dll Microsoft.Web.UI.WebControls.dll OWC10Chart.dll 6.FTP操作 FTPClient FTPHelper FTPOperater 7.JS操作 JsHelper 8.JSON 转化 ConvertJson List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 9.Mime MediaTypes MimeEntity MimeHeaders MimeReader QuotedPrintableEncoding 10.PDF 转化 PDFOperation 11.ResourceManager 操作 AppMessage ResourceManager ResourceManagerWrapper Resources Sample.xml 12.XML操作 XmlHelper XMLProcess 13.弹出消息 MessageBox ShowMessageBox 14.导出Excel 操作 DataToExcel ExcelHelper ExportExcel GridViewExport 15.分词辅助 SegList 16.汉字转拼音 EcanConvertToCh PinYin 17.配置文件操作 ConfigHelper 18.日历 CNDate 19.上传下载 DownLoadHelper FileDown FileUp UpLoadFiles 20.时间操作 DateFormat TimeHelper TimeParser 21.视频转换 VideoConvert 22.随机数 BaseRandom RandomHelper RandomOperate 23.条形码 BarCodeToHTML 本是个条码生成,大家可根据需要自己设置,非常好用 24.图片 ImageClass ImageDown ImageUpload 25.网络 NetHelper 26.文件操作 DirFile FileOperate INIFile 27.序列化 Serialize SerializeHelper 28.压缩解压缩 SharpZip 29.验证码 YZMHelper Captcha 验证码,一个很个性的验证码 30.页面辅助 HTMLHelper UploadEventArgs JavaScriptPlus PageHelper 31.邮件 MailHelper MailPoper MailSender SmtpServerHelper 32.邮件2 ConnectCommand ConnectResponse DeleCommand ListCommand ListResponse MailHeaders MailMessageEx NoopCommand PassCommand Pop3Client Pop3Command Pop3Commands Pop3Exception Pop3ListItem Pop3Response Pop3Responses Pop3State QuitCommand RetrCommand RetrResponse RsetCommand Stat StatCommand StatResponse TopCommand UserCommand 33.正则表达式 RegexHelper 34.字符串 StringHelper 35.其它 BasePage BindDataControl ConvertHelper DataCache FormulaExpress GridViewHelper IpHelper MediaHandler PageValidate PicDeal QueryString Rmb StringPlus SysHelper Tools UrlOper Utility ValidateImg WebSitePathHelper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值