自写保存字符串或文件为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,而且还很方便,于是就给出来,希望大家多提意见。

目录
相关文章
|
5月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
356 3
|
7月前
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
240 32
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
401 8
|
6月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
234 0
|
12月前
|
JSON 安全 API
.net 自定义日志类
在.NET中,创建自定义日志类有助于更好地管理日志信息。示例展示了如何创建、配置和使用日志记录功能,包括写入日志文件、设置日志级别、格式化消息等。注意事项涵盖时间戳、日志级别、JSON序列化、线程安全、日志格式、文件处理及示例使用。请根据需求调整代码。
185 13
|
12月前
|
Linux C# Windows
.NET使用MiniWord高效生成Word文件
.NET使用MiniWord高效生成Word文件
390 12
|
12月前
|
JSON 数据格式
.net HTTP请求类封装
`HttpRequestHelper` 是一个用于简化 HTTP 请求的辅助类,支持发送 GET 和 POST 请求。它使用 `HttpClient` 发起请求,并通过 `Newtonsoft.Json` 处理 JSON 数据。示例展示了如何使用该类发送请求并处理响应。注意事项包括:简单的错误处理、需安装 `Newtonsoft.Json` 依赖,以及建议重用 `HttpClient` 实例以优化性能。
294 2
Visual Studio 快速分析 .NET Dump 文件
【11月更文挑战第10天】.NET Dump 文件是在 .NET 应用程序崩溃或出现问题时生成的,记录了应用程序的状态,包括内存对象、线程栈和模块信息。通过分析这些文件,开发人员可以定位和解决内存泄漏、死锁等问题。在 Visual Studio 中,可以通过调试工具、内存分析工具和符号加载等功能来详细分析 Dump 文件。此外,还可以使用第三方工具如 WinDbg 进行更深入的分析。
681 1
.NET 压缩/解压文件
【9月更文挑战第5天】在 .NET 中,可利用 `System.IO.Compression` 命名空间进行文件的压缩与解压。首先引入相关命名空间,然后通过 GZipStream 类实现具体的压缩或解压功能。下面提供了压缩与解压文件的方法示例及调用方式,便于用户快速上手操作。
181 6
.NET 4.0下实现.NET4.5的Task类相似功能组件
【10月更文挑战第29天】在.NET 4.0 环境下,可以使用 `BackgroundWorker` 类来实现类似于 .NET 4.5 中 `Task` 类的功能。`BackgroundWorker` 允许在后台执行耗时操作,同时不会阻塞用户界面线程,并支持进度报告和取消操作。尽管它有一些局限性,如复杂的事件处理模型和不灵活的任务管理方式,但在某些情况下仍能有效替代 `Task` 类。
182 0