6

これは私が何時間も格闘してきたパズルです。背景は次のとおりです。

  1. Unity IoCMVC4 Web アプリで使用します
  2. ApiControllers (IHttpController)通常のコントローラーがいくつかあります ( IController)
  3. IControllers作品の解像度は良好
  4. の解決はIHttpControllers何ヶ月も正常に機能していましたが、現在は詳細 " The type InjectionPolicy cannot be constructed. You must configure the container to supply this value"のタイプ解決エラーで失敗しています
  5. 通常のコントローラーと Api コントローラーの両方が、ICustomerService依存関係を持つ依存関係を取り、その依存関係にはICustomerRepository依存関係がありますがIClient、これは新しいものでも異なるものでもありません。
  6. ICustomerServiceから依存関係を削除ApiControllerすると、問題が解決します (ただし、そのインターフェイスは明確に構成されており、他の場所でも機能しています)。
  7. Unity に登録されている を配置し、HttpControllerActivator呼び出しをインターセプトして解決してIHttpControllersいます - コンテナーを調べても、container.Resolve で失敗しますが、コントローラーは明らかにそこにあります。

この特定のエラーを検索しましたが、何も見つかりません。誰かが以前にそれを見たことがありますか、それとも何が起こっているのかについての手がかりを与えてくれますか?

本当にありがとう!

更新:これを解決策に絞り込みましたICustomerRepository(繰り返しますが、他のすべてのフローで作業しています)。エラーは次のとおりです。

Resolving Xxx.CustomerRepository,(none) (mapped from Xxx.ICustomerRepository, (none))
    Resolving Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior,(none)
    Resolving parameter "policies" of constructor Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior(Microsoft.Practices.Unity.InterceptionExtension.CurrentInterceptionRequest interceptionRequest, Microsoft.Practices.Unity.InterceptionExtension.InjectionPolicy[] policies, Microsoft.Practices.Unity.IUnityContainer container)
      Resolving Microsoft.Practices.Unity.InterceptionExtension.InjectionPolicy[],(none)
4

0 に答える 0