首页 > 代码库 > 初学C#和MVC的一些心得,弯路,总结,还有教训(4)--Cache 关于创建多个缓存实例

初学C#和MVC的一些心得,弯路,总结,还有教训(4)--Cache 关于创建多个缓存实例

asp.net中的数据缓存可以用 HttpRuntime.Cache ,这个是大家都知道的,但如果缓存的数据比较多,又比较杂乱,想要把缓存分开管理(也就是创建多个缓存实例)应该怎么做呢。。。

 

于是常规做法来了

 

using System.Web.Caching;    public static class MyCache     {        public static Cache cache = new Cache();    }

 

不用说也知道,肯定跑不起来,不然也不会有这篇文章了,使用的时候对新建的 MyCache.cache 的任何操作都会提示 “System.NullReferenceException”类型的异常在 System.Web.dll 中发生,但未在用户代码中进行处理  错误。于是郁闷了半天,各方查找,终于找到了解决方法。

 

演练:在 ASP.NET 应用程序中使用多个缓存对象

http://msdn.microsoft.com/zh-cn/library/ff919782

 

 

MSDN上说 ObjectCache 类提供了一个内存中对象缓存。

注意
ObjectCache 类替代了早期版本的 ASP.NET 中使用的 Cache 类。 在 ASP.NET 4 中,实现缓存的首选方式是使用 ObjectCache 类。

 

具体的例子大家可以去看MSDN的演练,只是例子代码中他们是这样写的   ObjectCache cache = MemoryCache.Default; 这样新声明出来的cache 会被指向同一个 Default 实例,如果我们要创建多个实例,可以这样来做

 

using System.Runtime.Caching; //注意,这个命名空间可能需要手动引用一下    public static class MyCache     {        public static ObjectCache cache = new MemoryCache("cache1");  }

  实例化 MemoryCache 的时候还有个 config 参数,具体的msdn上也有说明,这里只是做个小小记录,就不啰嗦了。

初学C#和MVC的一些心得,弯路,总结,还有教训(4)--Cache 关于创建多个缓存实例