2012-03-29 12 views
4

私の小さなWeb APIプロジェクト(SelfHostHttpServerを介してホストされています)には、コントローラに注入したいいくつかの依存関係があります。これを行うために、私はIDependencyResolverを実装し、httpConfig.ServiceResolver.SetResolverと呼んでいます。ASP.Net Web API DependencyResolver - 私が気にしない多数の内部依存関係を解決しようとするフレームワーク?

このとなります。ただし、Web APIに必要な内部依存関係を満たす必要がある場合を除きます。私が初めてそれを実行したとき、コントローラ工場を解決する必要があることを知ったので、DefaultHttpControllerFactoryのインスタンスをコンテナに追加しました。今、私はページをリフレッシュするたびに、の次のの未解決の依存関係でクラッシュし、フレームワークが解決しようとしています。

私は間違ったやり方をしていますか、あるいはデフォルトの実装をすべて試してみることになっています。このクラッシュ・フィックス・リフレッシュ・サイクルを通して、Web APIフレームワークに必要な依存関係を発見する必要があります。正しく動作しますか?

答えて

5

リゾルバが依存関係を解決できない場合はどうしますか?適切な動作はnullを返す必要があります。

  • あなたはSetResolverを通じて(ユーザーrosolver)を設定1
  • ユーザーリゾルバ戻った場合DefaultServiceResolver

に建て:ASP.NETのWeb API DependencyResolver(httpConfig.ServiceResolver)は、内部で2つのレゾルバを使用しています依存関係がnullの場合、Web APIはすべての組み込み依存関係を処理できるDefaultServiceResolverに戻ります。

+0

偉大な助けを借りて、大いに助けてくれました! –

+0

GetServiceからnullを返し、GetServicesから空のリストを返します。 http://www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolver –