【问题标题】:Can you use System.Runtime.Caching.MemoryCache in a web app?您可以在 Web 应用程序中使用 System.Runtime.Caching.MemoryCache 吗?
【发布时间】:2012-05-23 22:52:09
【问题描述】:

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

【问题讨论】:

    标签: asp.net .net


    【解决方案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

    【讨论】:

      【解决方案2】:

      是的,你当然可以。

      至于不这样做的原因,它们不是完全相同的东西并且不共享相同的缓存优先级,所以如果你要同时使用它们,那么在内存不足的情况下你可能会发现东西被弹出出乎意料的缓存。

      如果你只使用其中一个,你应该没问题。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-09-17
          • 1970-01-01
          • 2010-10-23
          • 1970-01-01
          • 2011-06-05
          • 2013-07-15
          • 2019-01-16
          相关资源
          最近更新 更多