1

ページ全体で使用できるように、User クラスを HttpRequest の Context.Items プロパティに格納します。

リピーターを使用している場合は、これを数回、おそらく数十回参照する必要があります。

context.items からの取得は高価ですか? たとえば、それを取得してローカル変数として保存する必要がありますか、それとも何度も直接アクセスしても問題ありませんか?

4

1 に答える 1

1

ローカル変数を使用できる場合は、ローカル変数を使用してください。オーバーヘッドが削減されるだけでなく、コードが短くなり、読みやすく、保守しやすくなります (「魔法の文字列」はありません)。

Context.Itemsは、ローカル変数を使用できない状況向けに設計されています。

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

したがって、Context.Items を使用して、同じ要求を処理するが同じオブジェクトにアクセスできない2 つのオブジェクト間で情報を転送しPageます。具体例は次のとおりです。

  • を使用して 2 つのページ間でデータを渡すServer.Transfer
  • とページの間でデータを渡しApplication_BeginRequestます。
  • IHttpModuleカスタム(カスタム認証ハンドラーなど) とページの間でデータを渡す。
于 2012-09-16T14:24:52.650 に答える