У меня есть следующий интерфейсДанные 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), а также новые параметры электронной почты для запроса, если они решили использовать уведомление по электронной почте вместо уведомления о событиях? ** ПРИМЕЧАНИЕ. В запросах могут быть разные методы уведомления, 1 может быть уведомлением о стандартном блоке, в то время как другие могут быть только электронной почтой.