我的小型 Web API 项目(通过 SelfHostHttpServer
托管)有一些我想注入(inject) Controller 的依赖项。为了做到这一点,我实现了 IDependencyResolver
并调用 httpConfig.ServiceResolver.SetResolver
.
这可以正常工作,但似乎我需要满足 Web API 所需的内部依赖项。第一次运行,看到需要解析 Controller 工厂,所以添加了DefaultHttpControllerFactory
的实例到我的容器。现在每次我刷新页面时,它都会因框架试图解决的下一个 Unresolved 依赖项而崩溃。
我是不是走错了路,还是我真的应该尝试猜测所有默认实现,并被迫通过这个崩溃-修复-刷新周期来发现 Web API 框架正常工作所需的依赖项?
最佳答案
如果您的解析器无法解决依赖关系,它会做什么?正确的行为应该是返回 null。 ASP.NET Web API DependencyResolver (httpConfig.ServiceResolver) 在内部使用两个解析器:
如果用户解析器为依赖项返回 null,则 Web API 会回退到可以处理所有内置依赖项的 DefaultServiceResolver。
关于dependency-injection - ASP.Net Web API DependencyResolver - 试图解决许多我不关心的内部依赖关系的框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925591/