3

Ninject を使用して、asp.net Web API の DelegatingHandler で依存関係を解決しようとしています。

次のように、カスタム委任ハンドラーを登録しglobal.asaxています。

GlobalConfiguration.Configuration.MessageHandlers.Add(
            DependencyResolver.Current.GetService<AuthorizationHeaderHandler>());

MessageHandlers の有効期間は何ですか? IoC コンテナーを使用して、委任ハンドラーに依存関係を注入することは理にかなっていますか?

4

1 に答える 1

4

委任ハンドラーは、アプリケーションの開始時に一度だけ初期化されます。それらは、単一の要求/応答ライフサイクルの一部ではなく、進行中の仲介者と考えてください。

これを変更したい場合は、Codeplex でこれを変更するためのワーク アイテムが公開されてます。

当分の間、ハンドラーに何かを注入するための最善の策は、依存関係を手動で解決することです。そのため、(残念ながら) Service Location を使用します。

于 2012-11-02T13:58:36.627 に答える