一,下载并安装好Enterprise Library 4.1
二,新建一个Web应用程序
三,右键点击Web.Config 文件 使用 Edit Enterprise Library Configuration 可以编辑Web.Config,建立一个缓存程序块
1.可以在Cache Managers 中建立多个缓存管理器,然后设置默认使用哪个管理器
2.可以右键为管理器添加一种存储方式,如果不加就是默认的内存存储。
3.管理器的名字用来做Key,获取存储区对象
4.保存后,打开Web.config 会看到
<cachingConfiguration defaultCacheManager="Cache Manager"> <cacheManagers> <add expirationPollFrequencyInSeconds="60" maximumElementsInCacheBeforeScavenging="1000" numberToRemoveWhenScavenging="10" backingStoreName="Null Storage" type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="Cache Manager" /> <add expirationPollFrequencyInSeconds="60" maximumElementsInCacheBeforeScavenging="1000" numberToRemoveWhenScavenging="10" backingStoreName="Isolated Storage" type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="Cache Manager1" /> </cacheManagers> <backingStores> <add partitionName="IsolatedCache" encryptionProviderName="" type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.IsolatedStorageBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="Isolated Storage" /> <add encryptionProviderName="" type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="Null Storage" /> </backingStores> </cachingConfiguration>
四,添加引用
using Microsoft.Practices.EnterpriseLibrary.Caching;
using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
五.写代码(例子我是复制菩提树下的杨过的代码)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Microsoft.Practices.EnterpriseLibrary.Caching; using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations; namespace CachingBlock { public class MyData { public string Name { set; get; } public int Age { set; get; } public string Color { set; get; } } public partial class WebForm1 : System.Web.UI.Page { const string KEYNAME = "myDateCache";//缓存的键值 ICacheManager cacheManager; protected void Page_Load(object sender, EventArgs e) { cacheManager = CacheFactory.GetCacheManager();//实例化ICachemanager } protected void btnWrite_Click(object sender, EventArgs e) { //生成要缓存的数据(实际开发中可以是从数据库查询出来的数据) List<MyData> _list = new List<MyData>{ new MyData(){ Age=1, Color="Yellow", Name="China"}, new MyData{ Age=2,Color="Black",Name="USA"} }; AbsoluteTime _ExpireTime = new AbsoluteTime(DateTime.Now.AddSeconds(30));//指定30秒后过期 cacheManager.Add(KEYNAME, _list, CacheItemPriority.Normal, null, _ExpireTime);//加入缓存 Response.Write("Cache写入完成," + DateTime.Now.ToString()); } protected void btnRead_Click(object sender, EventArgs e) { this.R1.DataSource = GetCacheData(); this.R1.DataBind(); Response.Write("Cache加载完成," + DateTime.Now.ToString()); } /// <summary> /// 获取缓存数据 /// </summary> /// <returns></returns> public List<MyData> GetCacheData() { List<MyData> _cacheData = cacheManager.GetData(KEYNAME) as List<MyData>; if (null == _cacheData)//记得一定要加此判断(因为缓存可能过期) { //如果缓存数据为空,则重新生成数据,并加入缓存(为检测效果,特地把Color与Name前加了一个"New") _cacheData = new List<MyData> { new MyData(){ Age=1, Color="New Yellow", Name="New China"}, new MyData{ Age=2,Color="New Black",Name="New USA"} }; AbsoluteTime _ExpireTime = new AbsoluteTime(DateTime.Now.AddSeconds(30));//指定30秒后过期 cacheManager.Add(KEYNAME, _cacheData, CacheItemPriority.Normal, null, _ExpireTime); } return _cacheData; } protected void btnRemove_Click(object sender, EventArgs e) { cacheManager.Remove(KEYNAME); Response.Write("Cache清空完成," + DateTime.Now.ToString()); } } }
示例源码下载:EL41Sample.rar
Enterprise Library 4.1 目录:Enterprise Library 4.1 快速使用图文笔记 目录
冯瑞涛
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)