这是我几个小时以来一直在努力解决的难题。这是背景:
- 我们
Unity IoC
在 MVC4 网络应用程序中使用 - 我们有几个
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
项(但该接口已明确配置并在其他任何地方工作) - 我们已经在
HttpControllerActivator
Unity 中注册了一个,并且正在拦截调用以解决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)