3

System.Runtime.Caching.MemoryCache は、非 Web アプリケーションで使用する System.Web.Caching.Cache の一種として説明されていますが、違いは何ですか? ASP.Net アプリケーションで System.Runtime.Caching.MemoryCache を使用しない理由はありますか?

4

3 に答える 3

2

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 と System.RUNtime.Caching.MemoryCacheの比較

MSDN: System.Runtime.Caching 名前空間

MSDN: System.Web.Caching 名前空間

于 2012-05-23T14:52:09.420 に答える
1

違いは、System.Webに依存しないため、asp.net以外のアプリケーションでの使用に最適化されていることです。このMSDNページによると、別の違いは、同じアプリケーションおよび同じAppDomainインスタンスで使用するためにMemoryCacheクラスの複数のインスタンスを作成できることです。

したがって、asp.netアプリケーションでSystem.Web.Caching.Cacheを使用しない理由は実際にはありませんが、そうです、System.Runtime.Caching.MemoryCacheも使用できます。

于 2012-05-23T14:50:16.883 に答える
1

はい、もちろんできます。

そうしない理由としては、それらはまったく同じものではなく、同じキャッシュの優先順位を共有していないため、両方を使用すると、メモリが少ない状況でキャッシュから取り出されることがあります。あなたが期待していなかったこと。

どちらか一方だけを使用する場合は、問題ないはずです。

于 2012-05-23T14:49:40.183 に答える