问题描述
我将为ASP.NET Web API项目使用依赖注入。
我了解构造函数依赖注入的工作原理,但是我无法解决如何使注入器在同一接口的两个实现之间进行选择。让我们举一个例子,我们有一个这样的接口:
public interface ISender
{
void Send();
void AddReceipment(User user);
}
然后可以说,我使用相同的SmsSender
接口对此MailSender
和ISender
进行了两种实现。
现在我有两个API控制器,可以将它们称为“ MailController”和“ SmsController”。
现在,我希望依赖注入器通过类ISender
的实现将MailSender
注入MailController,在SmsController中,我也希望注入ISender
,但是通过实现类SmsSender
。
使用AutoFac或Unity容器是否可能?
如果是,那我该怎么处理?
解决方法
根据Autofac文档,您可以通过4个选项来实现: