1

こんにちは、msnd で、Ihttphandler インターフェイスから継承するものはすべて httpcontext オブジェクトにアクセスできることがわかります (下のリンクのページの備考セクションの下)。

msdn HTTPContext

私の質問は、インターフェイスがこのオブジェクトをどのように公開するかです...インターフェイスに httpcontext 型のプロパティが表示されません。httpcontext オブジェクトを取り込んでいる「ProcessRequest」メソッドが表示されます。しかし、msndページにあるように、httpcontextオブジェクトがインターフェイスから直接公開される結果となる方法はわかりません。

ここで重要な概念が欠けている場合はご容赦ください。これはかなり新しいものです。ありがとう

4

1 に答える 1

1

いいえ、ProcessContext メソッドにのみ渡されます。ハンドラーは、リクエストのコンテキストであるため、その HttpContext インスタンスと対話します。コンテキスト インスタンスを他のさまざまなメソッドなどに好きなだけ渡すことができます。

IsReusable プロパティに関するドキュメントを見ると、なぜこのように行われるのかがより明確になります。そのプロパティがの場合true、複数の要求が同じハンドラー インスタンスによって処理される可能性があるため、それらが機能するには別の HttpContext を提供する必要があります。

ここで、IsReusable を として指定するとfalse、ProcessRequest からの HttpContext インスタンスをインスタンスのプロパティに格納できます。ハンドラーを共有しないと、シナリオによってはパフォーマンスの問題が発生する可能性がありますが、おそらく心配する必要はありません。

于 2013-02-25T19:32:59.317 に答える