我有以下接口RunTime依賴注入的數據?
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),以及如果他們選擇使用電子郵件通知而不是事件日誌通知,則可以爲查詢創建適當的電子郵件設置? **注意:Querys可以有不同的通知方法,1可以是evenlog通知,而其他可能只有所有電子郵件。