我应该使用HttpRuntime.Cache吗?

Dom*_*ang 31 c# caching httpruntime.cache

我是asp.net的初学者,并且有一些关于Cache的问题:

  1. HttpRuntime.Cache只提供了几个方法,我想我可以自己用Dictionary实现这些方法.
  2. 如果HttpRuntime.Cache比Dictionary好多了,为什么有些人想要实现自己的缓存框架.
  3. MS Enterprise Cache Block怎么样?

Dar*_*rov 87

HttpRuntime.Cache只提供了几个方法,我想我可以自己用Dictionary实现这些方法.

你认为错了.HttpRuntime.Cache不仅仅是一个简单的字典.它提供线程安全和缓存过期策略.它提供了使用自定义实现的可能性,并从分布式缓存中受益,这在Web场中很有用.用字典实现这个可能是很多你可能不想冒险的工作,因为你将基本上重新发明轮子,即使重新发明轮子没有打扰你,你做正确的机会很渺茫.

2)如果HttpRuntime.Cache比Dictionary好多了,为什么有些人想要实现自己的缓存框架.

人们不想这样做.

3)MS Enterprise Cache Block怎么样?

当你需要简单的缓存时,并不总是需要这种重型火炮,这可以通过框架已经提供的开箱即用来实现.

备注:在.NET 4.0中,您应该使用新的System.Runtime.Caching命名空间而不是HttpRuntime.Cache.

所以回答你的问题: Should I use HttpRuntime.Cache

是的,除非您使用的是.NET 4.0,否则您应该使用新System.Runtime.Caching命名空间中的类.

  • @ Domi.Zhang,是的,我已经看到了.它工作但需要依赖System.Web程序集.这就是微软决定将缓存外部化为.NET 4.0中的单独程序集的原因. (2认同)