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

简介: using System;using System.Text;using System.Web;using System.IO;namespace Chsword {    ///     /// 成幻互联缓存类    /// 邹健 2007.5    ///     class Cache {        TimeSpan _TimeSpan;        ///         /// 构造函数。
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,而且还很方便,于是就给出来,希望大家多提意见。

目录
相关文章
|
15天前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
2月前
|
存储 缓存 前端开发
JavaScrip实现一个有时间限制的缓存类
JavaScrip实现一个有时间限制的缓存类
17 0
|
6月前
|
缓存 开发框架 .NET
ASP.NET Core 缓存
Get新知识: 缓存相关概念:缓存的类型:总结:总的来说,私有缓存会减少网络带宽的需求,同时会减少从缓存到API的请求。因为私有缓存是存储在客户端浏览器的,对于请求来说,如果缓存还在有限期内,那么请求连网络请求都不会发出会直接在客户端浏览器获取到响应,这样就减少网络请求次数,同样也会减少API请求次数。而共享缓存不会节省缓存到API的网路带宽,但是它会减少请求到API的请求。因为共享缓存是...
32 0
ASP.NET Core 缓存
|
6月前
|
对象存储
.net core 阿里云接口之拷贝文件
紧接上文, 1)[.net core 阿里云接口之获取临时访问凭证](https://developer.aliyun.com/article/1363447?spm=a2c6h.12873639.article-detail.7.2b0e5b1cpeWbZ5 ".net core 阿里云接口之获取临时访问凭证") 2)[.net core 阿里云接口之将指定的OSS文件下载到流](https://developer.aliyun.com/article/1363886 ".net core 阿里云接口之将指定的OSS文件下载到流") 本文继续阿里云接口调用,将指定的OSS文件下载到流。
34 0
|
6月前
|
C#
.net core 从(本地)服务器获取APK文件并解析APK信息
## 1、apk解析除了使用客户端利用aapt.exe、unzip.exe开发客户端解析外,还可以直接利用服务进行解析 ```csharp /// <summary> /// 从本地服务器获取APK文件并解析APK信息 /// </summary> /// <param name="fileName">APK文件的完整路径</param> /// <returns></returns> [HttpPost, HttpGet, HttpOptions, CorsOptions] public IActionResult DecodeAPK(string fileName) { if(fi
30 0
|
6月前
|
JavaScript 前端开发 关系型数据库
.net core + vue + elementui 删除指定日期段、指定路径下的所有文件
# 1、呈现效果 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/j2ygdazy447va_0782583bbc894c33a079db9e44385acd.png) # 2、后端 ## 1)服务层 ```csharp /// <summary> /// 删除指定修改日期段及指定路径下的所有文件 /// </summary> /// <param name="filepath">指定路径</param> /// <returns>返回删除结果提示</returns> public string DeleteSpecif
40 0
|
6月前
|
C#
.net core 删除指定路径下的所有文件以及文件夹(文件夹建议保留目录)
1、服务层 ```csharp /// <summary> /// 删除指定路径下的所有文件 /// </summary> /// <param name="filepath">指定路径</param> /// <returns></returns> public string DeleteSpecifiedPathAllFile(string filepath) { try { DirectoryInfo info = new DirectoryInfo(filepath); // 去除文件夹的只读属性 info.Attribu
28 0
|
7月前
|
开发框架 JSON Kubernetes
.NET Core - 环境变量配置和文件提供程序配置方式详解
.NET Core - 环境变量配置和文件提供程序配置方式详解
|
8月前
|
开发框架 前端开发 .NET
ASP.NET Core 基础知识之​Startup 类配置
Startup 类配置服务和应用的请求管道。
113 0
|
8月前
|
开发框架 前端开发 .NET
asp.net 文件分片上传
asp.net 文件分片上传
99 0
asp.net 文件分片上传