using System;
using System.Text;
using System.Web;
using System.IO;

namespace Chsword {
    /// <summary>
    /// 成幻互联缓存类
    /// 邹健 2007.5
    /// </summary>
    class Cache {
        TimeSpan _TimeSpan;
        /// <summary>
        /// 构造函数。自动设置缓存为1小时20分。
        /// </summary>
        public Cache() {
            _TimeSpan = new TimeSpan(0, 1, 20, 0, 0);
        }
        /// <summary>
        /// 构造函数。手动设置缓存有效时间。
        /// </summary>
        /// <param name="ts">缓存有效时间</param>
        public Cache(TimeSpan ts) {
            _TimeSpan = ts;
        }
        /// <summary>
        /// 检测缓存是否存在或为空。
        /// </summary>
        /// <param name="CacheName">缓存名称</param>
        /// <returns>缓存存在则返回True,反之为False。</returns>
        public Boolean IsNullorEmpty(String CacheName) {
            if (HttpContext.Current.Cache[CacheName] != null)
                if (String.IsNullOrEmpty(HttpContext.Current.Cache[CacheName].ToString()))
                    return true;
                else
                    return false;
            else
                return true;

}
        /// <summary>
        /// 设置缓存。
        /// </summary>
        /// <param name="CacheName">缓存名称</param>
        /// <returns>是否存储成功。</returns>
        public Boolean SetCache(String CacheName){
            try {
                String fn = HttpContext.Current.Request.MapPath(String.Format("~/Xml/{0}.xml", CacheName));
                return SetCache(CacheName,OpenTextFile(fn));
            }
            catch {
                return false;
            }
        }
        /// <summary>
        /// 设置缓存。
        /// </summary>
        /// <param name="CacheName">缓存名称</param>
        /// <param name="CacheValue">缓存的值</param>
        /// <returns>是否存储成功。</returns>
        public Boolean SetCache(String CacheName,String CacheValue) {
            try {
                if (!IsNullorEmpty(CacheName))
                    return true;
                else {//如果不存在,则重新载入缓存。
                    HttpContext.Current.Cache.Add(CacheName, CacheValue, null, DateTime.MaxValue, _TimeSpan , System.Web.Caching.CacheItemPriority.Normal, null);
                    return true;
                }
            }
            catch {
                return false;
            }
        }
        /// <summary>
        /// 打开文本文件,并返回文件内容。
        /// </summary>
        /// <param name="fn">文件路径。</param>
        /// <returns>返回文本文件内容。</returns>
        String OpenTextFile(String fn) {
            String text;
            using (StreamReader sr = new StreamReader(fn, System.Text.Encoding.UTF8)) {
                text = sr.ReadToEnd();
            }
            return text;
        }
    }
}

在使用时要先进行Cache的实例化,再进行实例化。
Boolean SetCache(String CacheName)这个函数是为我的工程特制的,如果可以的话呢,可以对其进行重写。

本身这段代码并没有什么技术含量,写了这么长时间,用着也没有BUG,而且还很方便,于是就给出来,希望大家多提意见。

自写保存字符串或文件为asp.net缓存的类相关推荐

  1. 【Android】【Java】写一个字符串到Android系统得文件里去存起来,保存字符串到文件

    manifest.xml加权限: <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS& ...

  2. python中文字符串写入文件,python写入中英文字符串到文件的方法

    python写入中英文字符串到文件的方法 本文实例讲述了python写入中英文字符串到文件的方法.分享给大家供大家参考.具体分析如下: python中如果使用系统默认的open方法打开的文件只能写入a ...

  3. java把信息存到文件里,Java 如何将字符串信息直接写保存到文本文件?

    如何将字符串信息直接写保存到文本文件? Java 提供了很方便的方法,代码如下: import java.io.File; import java.io.StringWriter; /** * 传入文 ...

  4. 【java】File的使用:将字符串写出到本地文件,大小0kb的原因

    实现方法: 暂时写一种方法,将字符串写出到本地文件,以后可以补充更多种方法: public static void main(String[] args) {/*** ==============准备 ...

  5. 神奇的pdfkit工具——将字符串保存为pdf文件

    神奇的pdfkit工具--将字符串保存为pdf文件 1.安装工具包 pip install pdfkit 2.上干货 import pdfkitdef create_pdf(str_data, to_ ...

  6. [ASP.NET]动态页面调用JS错误。保存为HTML文件就不报错了。

    [ASP.NET]动态页面调用JS错误.保存为HTML文件就不报错了. 郁闷死了.因为调用的JS文件中有中文,不晓得为啥子.要设置编码就可以了. 加上type="text/javascrip ...

  7. python替换文件中的字符串_Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)...

    题目: 1.首先将文件:/etc/selinux/config 进行备份 文件名为 /etc/selinux/config.bak 2.再文件:/etc/selinux/config 中的enforc ...

  8. 写论文时,Word文档修改保存后,文件越来越大的解决方法

    写论文时,Word文档经过反复修改保存后,文件会越来越大,十分烦人,网上找了很多解决办法,按个尝试,现在总结分享出来,让大家少走弯路. 缩小word文件大小第一招: Word在保存DOC文件时只是把一 ...

  9. r语言写九九乘法表并保存为txt文件

    r语言写九九乘法表并保存为txt文件 代码 for(i in 1:9){for(j in 1:i){cat(j,"x",i,"=",i*j,'\t',file= ...

最新文章

  1. C语言下标要求数组或指针,c语言改错 error C2109: 下标要求数组或指针类型怎么改?...
  2. 软件项目随着数据量的不断增加,有什么优化方案么?
  3. js_加入收藏夹功能
  4. webpack 的基本使用—— 创建列表隔行变色项目||在项目中安装和配置 webpack
  5. 【干货】理发师都知道的产品经理最容易犯的几个错误
  6. hdu 1565 方格取数(1)
  7. Present算法verilog设计实现
  8. windows7电脑怎么永久关闭广告
  9. 基于2440的Linux开发原理,基于S3C2440和Linux的嵌入式网络驱动程序开发
  10. 从零基础入门Tensorflow2.0 ----八、41. estimator分布式实战
  11. html获取视频时长,js获取本地视频时间长度
  12. Android Bmob之用户更改头像(上传图片、下载图片和更新图片)
  13. comsol5.6下载
  14. 读书 - 《许三观卖血记》
  15. echarts地图边界数据的实时获取与应用,省市区县多级联动【附最新geoJson文件下载】
  16. 提高APP冷启动速度小结
  17. python写入csv或excel时,数字0开头丢失的解决方案
  18. 网页中视频内容自动播放
  19. 使用 Excel 和 Math.Net 进行曲线拟合和数据预测
  20. 接口测试有那些工具,他们的优劣势?

热门文章

  1. 多个 小程序_最简单的小程序制作方法,不会代码也能撸一个
  2. php 中 date转换为字符串,PHP 时间与字符串的相互转化
  3. 8年web前端开程序媛,告诉你如何零基础学习web前端
  4. 【C语言函数】 - 库函数、自定义函数、函数参数、函数调用、嵌套调用链式访问、递归与迭代、缓冲区
  5. A - 顺序表应用1:多余元素删除之移位算法
  6. linux启动写入了mbr,一、Linux系统启动(MBR)
  7. python线程wait_python基础线程-管理并发线程
  8. 如何找到python的安装路径_在cmd中查看python的安装路径方法
  9. PHP7 pecl 安装 mongodb扩展 和 PHPLIB
  10. linux 共享内存为分配,Linux在x86_64上共享内存分配