【发布时间】:2020-08-12 11:14:45
【问题描述】:
我将为 ASP.NET Web API 项目使用依赖注入。
我了解构造函数依赖注入的工作原理,但我无法解决如何让注入器在同一接口的两个实现之间进行选择。举个例子,我们有一个这样的接口:
public interface ISender
{
void Send();
void AddReceipment(User user);
}
然后假设我有 2 个 SmsSender 和 MailSender 使用相同的 ISender 接口实现。
现在我有两个 API 控制器,我们称它们为“MailController”和“SmsController”。
现在我希望依赖注入器通过 MailSender 类的实现将 ISender 注入 MailController,在 SmsController 中我也想注入 ISender,但通过 SmsSender 类的实现。
这可能使用 AutoFac 或 Unity 容器吗?
如果是,那我该如何处理呢?
【问题讨论】:
-
根据 Autofac 文档,您有 4 个选项可以实现此目的:autofaccn.readthedocs.io/en/latest/faq/select-by-context.html
标签: asp.net asp.net-web-api dependency-injection autofac unity-container