私は次のインターフェースを持っています
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 つはイベントログ通知、その他はすべて電子メールのみです。