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 と System.RUNtime.Caching.MemoryCacheの比較
MSDN: System.Runtime.Caching 名前空間
MSDN: System.Web.Caching 名前空間
違いは、System.Webに依存しないため、asp.net以外のアプリケーションでの使用に最適化されていることです。このMSDNページによると、別の違いは、同じアプリケーションおよび同じAppDomainインスタンスで使用するためにMemoryCacheクラスの複数のインスタンスを作成できることです。
したがって、asp.netアプリケーションでSystem.Web.Caching.Cacheを使用しない理由は実際にはありませんが、そうです、System.Runtime.Caching.MemoryCacheも使用できます。
はい、もちろんできます。
そうしない理由としては、それらはまったく同じものではなく、同じキャッシュの優先順位を共有していないため、両方を使用すると、メモリが少ない状況でキャッシュから取り出されることがあります。あなたが期待していなかったこと。
どちらか一方だけを使用する場合は、問題ないはずです。