【发布时间】:2014-08-14 06:41:39
【问题描述】:
我正在研究为 Web Api 2.2(最近发布)使用 IOC 容器。我想用它作为 Web API 控制器的依赖解析器,同时注入我自己的依赖。
我尝试使用 Unity 和 Autofac,使用 Web Api nuget 包,但没有成功。我得出的结论是他们不支持 Web Api 2.2(目前)。
还有其他已知的支持 Web Api 2.2 的 IOC 容器吗?
【问题讨论】:
-
你是怎么得出他们不支持的结论的?所有主要框架(Autofac、Simple Injector、Ninject、Castle Windsor、StructureMap、Unity)都支持 Web API。
-
我尝试使用 Unity 和 Autofac,两者都针对 System.Web.Http 库版本 5.1.0。 Web Api 2.2 使用 System.Web.Http 版本 5.2.0。尝试使用上述 ioc 调用 Web api 控制器时出现异常。
-
这就是 bindingRedirects 的用途。如果您使用 NuGet 将这些库添加到您的项目中,在大多数情况下,NuGet 将更改您的配置文件以更改绑定重定向。如果没有发生这种情况,您可以手动轻松完成。
标签: inversion-of-control unity-container ioc-container autofac asp.net-web-api2