6

HttpContextクラスCacheItemsプロパティの違いは何ですか?

MSDNドキュメントから:

Cache
現在のアプリケーションドメインのCacheオブジェクトを取得します。

ItemsHTTP
リクエスト中にIHttpModuleインターフェイスとIHttpHandlerインターフェイスの間でデータを整理および共有するために使用できるキー/値コレクションを取得します。

そのドキュメントが何を説明しようとしているのか、私は本当に理解していません。

ASP.NET Webアプリケーションで作業している間Items、複数のユーザーコントロールがデータベースから同じデータを検索することのないように、要求ごとのデータのキャッシュによく使用しました。これについては、この記事で説明しています。

Cacheしかし、今日、私は、リクエストごとのキャッシングのように見えるプロパティの使用法に出くわしました。私は違いを理解しようとしましたが、これら2つを比較する良いドキュメントを見つけることができませんでした。だから知りたいのですが...

HttpContextのCacheプロパティとItemsプロパティの違いは何ですか?さまざまな現実のシナリオでどちらか一方を使用することを選択する理由の例を詳しく説明してみてください。

4

1 に答える 1

12

アイテムはリクエストごとにあるため、その特定のHTTPリクエストに対してその特定のユーザーのみが利用できます。キャッシュは永続的にメモリに保存され、特定のユーザーに依存しません。したがって、キャッシュは複数のリクエスト間で複数のユーザー間で共有できますが、アイテムはリクエストごとにユーザーごとにあります。

それはあなたがデータをどれだけ長く存続させたいかによります。アイテムを使用して、ObjectContextやDbContextなどをEFに保存します。これらは、特定のリクエストに対してのみ共有したいものです。ただし、すべてのユーザーが多くのリクエストで使用するテーブルデータを参照するため、キャッシュの方が適しています。

于 2013-02-07T16:49:03.147 に答える