【发布时间】:2017-07-11 17:50:47
【问题描述】:
我有一个工作流,我需要根据一些运行时数据使用特定的服务类。
例如。我有一个SendEmailCommand,它的依赖项为IEmailService,有两个实现MandrillEmailService 和SmtpEmailService。
SendEmailCommand 将确定它在运行时使用 IEmailService 的哪个实现。
每个电子邮件服务实现都有自己的依赖关系,由 Simple Injector 连接起来。
我不确定SendEmailCommand 将如何确定要使用的实现 (IEmailService) 或如何将这些服务与运行时数据联系起来。
一些代码:
SendEmailCommand.cs 处理程序
public void Handle(SendEmail command) {
IEmailService service;
if(/* some condition */) {
service = // What to do here?
} else {
service = // What to do here?
}
}
服务可以用我猜的策略代替。
【问题讨论】:
标签: c# dependency-injection simple-injector