你可以在Web应用程序中使用System.Runtime.Caching.MemoryCache吗?

时间:2012-05-23 14:40:00

标签: asp.net .net

System.Runtime.Caching.MemoryCache被描述为一种用于非Web应用程序的System.Web.Caching.Cache,但有什么区别?是否有理由不在ASP.Net应用程序中使用System.Runtime.Caching.MemoryCache?

3 个答案:

答案 0 :(得分:1)

是的,你当然可以。

至于不这样做的原因,它们不完全相同,并且不共享相同的缓存优先级,所以如果你要同时使用它们,那么在内存不足的情况下你可能会发现事情被驱逐出去来自你没想到的缓存。

如果你只是使用其中一种,你应该没事。

答案 1 :(得分:1)

不同之处在于它针对nonasp.net应用程序的使用进行了优化,因为它不依赖于System.Web。根据{{​​3}},另一个区别是您可以创建MemoryCache类的多个实例,以便在同一个应用程序和同一个AppDomain实例中使用。

所以,没有理由不在你的asp.net应用程序中使用System.Web.Caching.Cache,但是,你也可以使用System.Runtime.Caching.MemoryCache。

答案 2 :(得分:1)

我相信System.Runtime.Caching实际上更新,并且是在System.Web.Caching之后建模的,不同之处在于您不必依赖System.Web程序集。此外,System.Runtime.Caching.MemoryCache是可扩展的,而您不能继承System.Web.Caching.Cache

我的建议是,如果您有一个公共库,例如,用于Web和服务(例如),请使用System.Runtime.Caching,这样您就不必包含System.Web绒毛(如果你不需要的话)。

以下是关于该主题的一些讨论:dotnet System.Web.Caching.Cache vs System.RUntime.Caching.MemoryCache

MSDN:System.Runtime.Caching Namespace

MSDN:System.Web.Caching Namespace