我的小型Web API项目(通过SelfHostHttpServer
托管)有一些我想要注入控制器的依赖项。为此,我实施了IDependencyResolver
并调用httpConfig.ServiceResolver.SetResolver
。
这个 可以正常工作,但似乎我需要满足Web API所需的内部依赖性。第一次运行它时,我看到它需要解析控制器工厂,所以我在我的容器中添加了DefaultHttpControllerFactory
的实例。现在我刷新页面的每一段时间都崩溃了,它崩溃了框架试图解决的 next 未解决的依赖。
我是以错误的方式解决这个问题,还是我真的应该尝试猜测所有默认实现并强制通过此崩溃修复 - 刷新周期来发现Web API框架需要哪些依赖关系才能工作正确?
答案 0 :(得分:5)
如果无法解决依赖关系,您的解析器正在做什么?正确的行为应该返回null。 ASP.NET Web API DependencyResolver(httpConfig.ServiceResolver)在内部使用两个解析器:
如果用户解析器为依赖项返回null,那么Web API将回退到DefaultServiceResolver,它可以处理所有内置依赖项。