背景:
1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了。
2:.NET Core 有新的Memory Cache提供,不过该内存类我看了一下,并没有支持文件的缓存依赖。
因此,在此前提下,预计.NET Core明年出来2.0版本时,可能也没支持文件的缓存依赖,因此,有必要提前准备实现。
在写此文前,我扫了一下园子里关于自定义缓存类的相关文章。
发现很多自定义的缓存类文章都简单停留在对字典的增删改查。
因此,决定补充这一篇完整思路的。
下面,就介绍一下这个缓存类的实现过程及原理。
实现缓存的类的核心思路介绍:
1:用static Dictionary<string,object> 来存档。
A:为了处理并发,V4.0或以上,可以用System.Collections.Concurrent.ConcurrentDictionary<string,object> 来存档。
B:如果为了支持.NET 2.0,则需要自己实现一个加锁的字典(本文即此种情况)
2:对该Dictionary提供增删改查方法。
3:提供定时缓存的过期策略。
4:提供文件监控策略。
5:测试并发、性能、和内存占用问题。
以下内容,重点介绍我的思路,源码截图以片断方式提供,具体的源码,会在链接中。
1:自定义线程安全的MDictionary(支持.NET 2.0)
如果要支持2.0,那么就只能自己实现了:实现的思路也很简单,只要对操作都加上锁即可:

