私はc#3.5でのキャッシュについて少し読んでいます。少し混乱しましたが、の違いを詳しく説明していただければ幸いです。
HttpContext.Current.Cache
対HttpRuntime.Cache
対System.Web.Caching.Cache
また、Web以外のアプリケーションで上記のいずれかを使用して読んだことはお勧めしませんが、機能します。欠点は何ですか?
私はc#3.5でのキャッシュについて少し読んでいます。少し混乱しましたが、の違いを詳しく説明していただければ幸いです。
HttpContext.Current.Cache
対HttpRuntime.Cache
対System.Web.Caching.Cache
また、Web以外のアプリケーションで上記のいずれかを使用して読んだことはお勧めしませんが、機能します。欠点は何ですか?
System.Web.Caching.Cache
Web アプリケーションのキャッシュを実装する型です。 HttpContext.Current.Cache
は単なるラッパーでありHttpRuntime.Cache
、のインスタンスにすぎませんSystem.Web.Caching.Cache
。
アップデート
ASP.NET アプリケーション外で HttpRuntime.Cache を使用してもよろしいですか? を参照してください。あなたの第二部のために。
更新: HttpRuntime.Cache をラップする必要があるのはなぜですか?
私の個人的な意見でHttpContext
は、渡される型と渡される型をIHttpHandler.ProcessPostBack
公開HttpApplication
しHttpContext
ますIHttpModule.Init
。これにより、メソッド注入を使用してすべての依存関係が確実に注入されます。したがって、彼らは間接的なレベルを導入しました。
ハンドラーとモジュールは、それらがホストされている HttpRuntime を認識しない必要があります。ASP.NET ページにいる間は、this.Page.Cache
代わりに使用することをお勧めします。HttpContext.Current.Cache
またはHttpRuntime.Cache
、HttpContext.Current を使用すると、現在のスレッドを解決するオーバーヘッドHttpRuntime.Cache
が発生し、外部依存関係が作成されるためです。に渡される でPage.Cache
初期化されますHttpContext.Cache
ProcessRequest