【发布时间】:2017-10-22 17:29:15
【问题描述】:
我想知道是否可以在不使用 Unity 或 StructureMap 等第三方库且不使用实体框架的情况下在 ASP.NET Web API 中进行依赖注入(自定义构造函数)。
我想要实现的是有一个带有构造函数的控制器,例如:
public Controller(IDatabaseConnector connector) { ... }
我知道对于 MVC,您可以通过从 DefaultControllerFactory 继承然后覆盖 GetControllerInstance 函数来创建自定义 ControllerFactory。所以我确信 Web API 有替代方案。
【问题讨论】:
-
阅读
IDependencyResolver以获取 web api。确保它适用于 Web API,因为 MVC 有自己的同名。 -
我最终从 IHttpControllerActivator 继承,这对我有用。
-
当我尝试使用 asp 核心时,它的示例页面中有依赖注入 msdn.microsoft.com/en-us/magazine/mt703433.aspx
-
依赖注入根本不需要 DI 容器。在Composition Root 中手动连接您的依赖项是一种称为Pure DI 的常见做法。正如您已经注意到的,您需要为此实现自定义
IHttpControllerActivator。
标签: c# asp.net asp.net-web-api dependency-injection