私はILog log
フィールドを持つベースコントローラクラスを持っています。これは、カスタムロガーサービスからのコンストラクタで設定され、依存関係注入によって渡されました。ASP.NETコアコントローラのコンストラクタ:アクセス要求情報
私は、任意のHTTPヘッダーまたはHttpContext.Items
や私log
を作成するときに、それを使用するにはそのような何かを得るために、コントローラのコンストラクタに要求コンテキストのようなものを利用したいと思います。
IHttpContextAccessor
を使ってみました。ミドルウェアによって追加されたItems
が含まれていないDefaultHttpContext
が表示されます。
コントローラのlog
プロパティをにして、このプロパティを設定するIActionFilter
を書くことが私には想像できます。アクションフィルタはコンテキストインスタンスとコントローラインスタンスの両方にアクセスできるためです。
コントローラーコンストラクターで要求コンテキストがないのは、要求情報がアクションの定型コードを回避するのに役立つため、私には奇妙に見えます。コントローラはリクエストごとに作成されるため、コンストラクタでリクエストデータを使用することは害です。