.NET Core2.0小技能之MemoryCache题目修复处理的要领(图)【C#.Net教程】,MemoryCache,Core2.0,.NET
作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:25评论:0
媒介
人人应当都晓得,关于传统的.NET Framework项目而言,System.Runtime.Caching
定名空间是经常运用的东西了,个中MemoryCache类则常被用于完成内存缓存。
.NET Core 2.0临时还不支撑System.Runtime.Caching dll,这也就意味着MemoryCache相干代码不再起作用了。
然则好消息是,我们能够运用.NET Core 2.0的新API完成内存缓存功用,简朴修正代码,处理不兼容题目。下面话不多说了,来一同看看细致的引见吧。
处理方案
1.将旧代码导入项目中,以下:
using System; using System.Runtime.Caching; namespace TestWebApp.Service { public class MemoryCacheService { static ObjectCache cache = MemoryCache.Default; /// <summary> /// 猎取缓存值 /// </summary> /// <param name="key"></param> /// <returns></returns> private object GetCacheValue(string key) { if (key != null && cache.Contains(key)) { return cache[key]; } return default(object); } /// <summary> /// 增加缓存内容 /// </summary> /// <param name="key"></param> /// <param name="value"></param> public static void SetChacheValue(string key, object value) { if (key != null) { CacheItemPolicy policy = new CacheItemPolicy { SlidingExpiration = TimeSpan.FromHours(1) }; cache.Set(key, value, policy); } } } }
导入后你会发明VS会提醒没法找到System.Runtime.Caching
定名空间,原有的代码没法直接编译运用。
2.增加对Microsoft.Extensions.Caching.Memory
定名空间的援用,它供应了.NET Core默许完成的MemoryCache类,以及全新的内存缓存API
using Microsoft.Extensions.Caching.Memory;
3.改写代码,运用新的API完成内存缓存功用
初始化缓存对象体式格局改写前:
static ObjectCache cache = MemoryCache.Default;
初始化缓存对象体式格局改写后:
static MemoryCache cache = new MemoryCache(new MemoryCacheOptions());
读取内存缓存值体式格局变化:
private object GetCacheValue(string key) { if (key != null && cache.Contains(key)) { return cache[key]; } return default(object); }
改写后:
private object GetCacheValue(string key) { object val = null; if (key != null && cache.TryGetValue(key, out val)) { return val; } else { return default(object); } }
设定内存缓存内容体式格局变化:
public static void SetChacheValue(string key, object value) { if (key != null) { CacheItemPolicy policy = new CacheItemPolicy { SlidingExpiration = TimeSpan.FromHours(1) }; cache.Set(key, value, policy); } }
修正后:
public static void SetChacheValue(string key, object value) { if (key != null) { cache.Set(key, value, new MemoryCacheEntryOptions { SlidingExpiration = TimeSpan.FromHours(1) }); } }
结论
在运用了Microsoft.Extensions.Caching.Memory
下的新API改写了旧代码后,你会发明原有的种种内存缓存超时战略全都是有对应新API的,包含AbsoluteExpiration, SlidingExpiration等等。
所以我们照样能够很轻松的运用.NET Core新API简朴修改下下就可以重用现有绝大部分旧代码,将其迁徙过来继承起作用。
迁徙后的完全代码以下:
using Microsoft.Extensions.Caching.Memory; using System; namespace TestMemoryCacheWebApp.Services { public class MemoryCacheService { static MemoryCache cache = new MemoryCache(new MemoryCacheOptions()); /// <summary> /// 猎取缓存值 /// </summary> /// <param name="key"></param> /// <returns></returns> private object GetCacheValue(string key) { object val = null; if (key != null && cache.TryGetValue(key, out val)) { return val; } else { return default(object); } } /// <summary> /// 增加缓存内容 /// </summary> /// <param name="key"></param> /// <param name="value"></param> public static void SetChacheValue(string key, object value) { if (key != null) { cache.Set(key, value, new MemoryCacheEntryOptions { SlidingExpiration = TimeSpan.FromHours(1) }); } } } }
总结
以上就是.NET Core2.0小技能之MemoryCache题目修复处理的要领(图)的细致内容,更多请关注ki4网别的相干文章!
相关推荐
- 运用 VSCode 编写 .NET Core 项目的实例教程【C#.Net教程】,VSCode,Core,.NET,编写,使用
- C#高等编程(一)-.NET体系结构【C#.Net教程】,C#,.NET,体系结构
- 细致引见.NET中的机能革新【C#.Net教程】,.NET,性能改进
- .NET是什么【C#.Net教程】,.NET是什么,.NET
- ASP.NET与.NET的区分是什么【C#.Net教程】,ASP.NET、.NET
- .NET Core中怎样运用Entity Framework操纵PostgreSQL?【C#.Net教程】,.NET,Entity Framework,PostgreSQL
- 浅谈.NET Core开辟日记中Edge.js是什么?如何用?【C#.Net教程】,.NET,Edge.js,Node.js
- C#中.NET框架的简介【C#.Net教程】,.NET,.NET框架
- .NET付出宝App付出接入的实例剖析【C#.Net教程】,.NET,实例分析,支付
- .NET Core中碰到的一些坑的图文详解【C#.Net教程】,.NET,Core,图文
你 发表评论:
欢迎- .Net教程排行
-
- 1案例分享c++ map的运用和 查找机能测试【C#.Net教程】,性能,map,c++
- 2细致引见C# string花样的日期时候字符串转为DateTime范例的要领【C#.Net教程】,C#,string,DateTime
- 3详解ASP.NET中衔接数据库设置要领【C#.Net教程】,ASP.NET,数据库,配置
- 4c#怎样运用?c#的基础语法【C#.Net教程】,c#,关键字
- 5C# DataSet机能最好实践【C#.Net教程】,C#,DataSet
- 6C#_挪用封装的一个类完成导出Excel表格的功用【C#.Net教程】,C# Excel表格
- 7.net和c#有什么区别【C#.Net教程】,.net,c#
- 8asp .net 面试题及答案分享【C#.Net教程】,.net,自己,整理,问题,面试
- 9让WebAPI 返回JSON花样的数据实例教程【C#.Net教程】,javascript,WebAPI,JSON,api,web,搭建,返回
- 最新文章
- 广而告之