ASP.Net Web API DependencyResolver - 试图解决我不关心的众多内部依赖的框架?

Nat*_*ley 4 dependency-injection asp.net-web-api

我的小型Web API项目(托管通过SelfHostHttpServer)有一些我想要注入控制器的依赖项.为了做到这一点,我已经实现IDependencyResolver并调用了httpConfig.ServiceResolver.SetResolver.

这样可以正常工作,但似乎我需要满足Web API所需的内部依赖性.我第一次运行它,我看到它需要解析控制器工厂,所以我添加了一个DefaultHttpControllerFactory容器的实例.现在我刷新页面的每一段时间都崩溃了,它崩溃了框架试图解决的下一个未解决的依赖.

我是以错误的方式解决这个问题,还是我真的应该尝试猜测所有默认实现并强制通过此崩溃修复 - 刷新周期来发现Web API框架正常工作所需的依赖关系?

tpe*_*zek 5

您的解析器正在做什么,以防它无法解决依赖关系?正确的行为应该返回null.ASP.NET Web API DependencyResolver(httpConfig.ServiceResolver)在内部使用两个解析器:

  • 你通过SetResolver设置的那个(用户rosolver)
  • 内置的DefaultServiceResolver

如果用户解析器为依赖项返回null,那么Web API将回退到DefaultServiceResolver,它可以处理所有内置依赖项.