AutoFac / Unity 容器 - 具有多种实现的依赖注入
AutoFac / Unity Container - Dependency Injection with multiple implementations
我将为 ASP.NET Web API 项目使用依赖注入。
我了解构造函数依赖注入的工作原理,但我无法解决如何使注入器在同一接口的两个实现之间进行选择。举个例子,我们有一个这样的界面:
public interface ISender
{
void Send();
void AddReceipment(User user);
}
然后假设我有 2 个使用相同 ISender
接口的 SmsSender
和 MailSender
的实现。
现在我有两个 API 控制器让我们称它们为“MailController”和“SmsController”。
现在我希望依赖项注入器通过 class MailSender
的实现将 ISender
注入 MailController 并且在 SmsController 中我也想注入 ISender
, 但随着 class SmsSender
.
的实施
是否可以使用 AutoFac 或 Unity 容器?
如果是,那我该如何处理?
根据 Autofac 文档,您有 4 个选项可以实现此目的:
我将为 ASP.NET Web API 项目使用依赖注入。
我了解构造函数依赖注入的工作原理,但我无法解决如何使注入器在同一接口的两个实现之间进行选择。举个例子,我们有一个这样的界面:
public interface ISender
{
void Send();
void AddReceipment(User user);
}
然后假设我有 2 个使用相同 ISender
接口的 SmsSender
和 MailSender
的实现。
现在我有两个 API 控制器让我们称它们为“MailController”和“SmsController”。
现在我希望依赖项注入器通过 class MailSender
的实现将 ISender
注入 MailController 并且在 SmsController 中我也想注入 ISender
, 但随着 class SmsSender
.
是否可以使用 AutoFac 或 Unity 容器?
如果是,那我该如何处理?
根据 Autofac 文档,您有 4 个选项可以实现此目的: