2

IDependencyから継承されたクラスがあります。クラスからHttpContextにアクセスするための最良の方法は何ですか?HttpContextが利用可能になったら、できるだけ早くアクセスしたいと思います。

IWorkContextAccessorの依存性注入をクラスに追加し、コンストラクターからアクセスしようとしましたが、GetContext()はnullを返します。

4

1 に答える 1

1

現在のHttpContextは、IoCコンテナオブジェクトが作成された後、 IWorkContextAccessorオブジェクトを介して利用できるため、コンストラクターでそれらにアクセスすることはできません。最良の方法は、コンストラクターがAutofacによって非常に早い段階で呼び出されるため、特にコンストラクター内ではなく、使用したいときにコンテキストオブジェクトにアクセスすることです。

IOrchardServicesオブジェクト(「サービス」と呼びましょう)を挿入してから、 services.WorkContext.HttpContextオブジェクトを使用することもできます。

達成したいことについて、もう少し詳しく教えていただけますか?なぜそんなに早くアクセスしたいのですか?これを書き直して、コンテキストオブジェクトが後で(たとえば、メソッド呼び出しで)使用されるようにすることはできませんか?

HTH

于 2011-03-19T23:01:53.493 に答える