System.Runtime.Caching.MemoryCache 被描述为一种用于非 Web 应用程序的 System.Web.Caching.Cache,但有什么区别呢?是否有理由不在 ASP.Net 应用程序中使用 System.Runtime.Caching.MemoryCache?
3 回答
我相信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
是的,你当然可以。
至于不这样做的原因,它们并不完全相同,并且不共享相同的缓存优先级,因此如果您要同时使用它们,那么在内存不足的情况下,您可能会发现缓存中的内容被弹出你没想到的。
如果你只使用其中一种,你应该没问题。
不同之处在于它针对非 asp.net 应用程序的使用进行了优化,因为它不依赖于 System.Web。根据这个 MSDN page,另一个区别是您可以创建 MemoryCache 类的多个实例,以便在同一个应用程序和同一个 AppDomain 实例中使用。
因此,确实没有理由不在您的 asp.net 应用程序中使用 System.Web.Caching.Cache,但是是的,您也可以使用 System.Runtime.Caching.MemoryCache。