我有以下界面
public interface ISender
{
void SendMessage(string msg);
}
以及以下实现
public class EmailSender : ISender
{
private EmailSettings _emailSettings;
EmailSender(EmailSettings _emailSettings)
public SendMessage(string msg);
}
public class EventLogSender : ISender
{
void SendMessage(string msg);
}
public class QuerySetting
{
string statementToExecute;
int MStoWaitBeforeExecute;
// if set to true then use email settings to perform notification through email
bool UseEmail;
EmailSettings EmailSettings;
}
public class EmailSettings
{
string serverip;
int port;
string username;
string password;
string MailToAddress;
}
在运行时,查询列表被加载到应用程序中。每个查询都包含有关执行查询频率的信息、有关何时为查询触发警报的信息以及有关警报发生时向谁发送电子邮件的电子邮件信息(或者如果未设置,则警报应仅写入事件日志) . 我如何在运行时使用依赖注入来知道要创建什么 ISender 实例(EmailSender 或 EventLogSender),如果他们选择使用电子邮件通知而不是事件日志通知,还如何为查询更新适当的电子邮件设置?**注意:查询可以有不同的通知方式,1 可以是偶数日志通知,而其他的可以都是电子邮件。