これは私が何時間も格闘してきたパズルです。背景は次のとおりです。
Unity IoC
MVC4 Web アプリで使用しますApiControllers (IHttpController)
通常のコントローラーがいくつかあります (IController
)IControllers
作品の解像度は良好- の解決は
IHttpControllers
何ヶ月も正常に機能していましたが、現在は詳細 "The type InjectionPolicy cannot be constructed. You must configure the container to supply this value
"のタイプ解決エラーで失敗しています - 通常のコントローラーと Api コントローラーの両方が、
ICustomerService
依存関係を持つ依存関係を取り、その依存関係にはICustomerRepository
依存関係がありますがIClient
、これは新しいものでも異なるものでもありません。 ICustomerService
から依存関係を削除ApiController
すると、問題が解決します (ただし、そのインターフェイスは明確に構成されており、他の場所でも機能しています)。- 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)