Unity:无法构造InjectionPolicy类型

时间:2013-10-02 01:53:39

标签: asp.net-mvc-4 inversion-of-control unity-container ioc-container

这是一个我几个小时都在苦苦挣扎的难题。这是背景:

  1. 我们在MVC4网络应用中使用Unity IoC
  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上失败了,即使查看容器,控制器显然在那里
  8. 我搜索了这个特定的错误但没有找到任何内容。有没有人见过它,或者它是否给你任何关于可能发生的事情的线索?

    非常感谢!

    更新:我已将其缩小到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)
    

0 个答案:

没有答案