【发布时间】:2017-10-25 15:47:18
【问题描述】:
我的应用程序中有一个接口和两个类(从该接口实现),如下所示:
public interface ISMSServiceProvider
{
NotificationSentResponse Send(SMSMessage sms);
}
public class NexmoProvider: ISMSServiceProvider
{
NotificationSentResponse Send(SMSMessage sms);
}
public class TwilioProvider: ISMSServiceProvider
{
NotificationSentResponse Send(SMSMessage sms);
}
在我的应用程序的某些地方,我需要使用 NexmoProvider,而在某些地方,我需要使用 TwilioProvider。这是根据以下枚举变量的值决定的:
public enum NotificationProvider
{
Twilio = 1,
Nexmo = 2
}
我在我的应用程序中使用服务堆栈,并且有以下代码来解决依赖关系:
container.RegisterAutoWiredAs<TwilioProvider, ISMSServiceProvider>();
但正如您所见,ISMSServiceProvider 中没有任何内容可以让我同时注册两种不同的类型。
谁能建议我在下面的结构中可能需要做哪些更改以使我能够在运行时使用 Nexmo 或 Twilio 提供程序类?
【问题讨论】:
标签: c# .net dependency-injection interface servicestack