2016-11-16 3 views
0

Мой asp.net статический конструктор, который вызывался при отправке почтымиграции asp.net Web API для asp.net ядра

static EmailHelper() 
     { 
      //load configuration from config file 

      int intSmtpPort = 0; 
      int.TryParse(WebConfigurationManager.AppSettings["smtpport"], out intSmtpPort); 
      host = WebConfigurationManager.AppSettings["smtpclient"]; 
      port = intSmtpPort; 
      user = WebConfigurationManager.AppSettings["username"]; 
      password = WebConfigurationManager.AppSettings["password"]; 
      fromEmail = WebConfigurationManager.AppSettings["frommail"]; 

     } 

Мой основной asp.net статический конструктор класса, который бросает ошибку, как это должно быть без параметров но мне нужно использовать конфигурацию

static EmailHelper(IOptions<SmtpConfig> smtpConfig) 
     { 
      int intSmtpPort = 0; 
      int.TryParse(SmtpConfig.smtpport, out intSmtpPort); 
      host = SmtpConfig.smtpclient; 
      port = intSmtpPort; 
      user = SmtpConfig.username; 
      password = SmtpConfig.password; 
      fromEmail = SmtpConfig.frommail; 

     } 

Если я использую публичный конструктор, он не будет вызван. Что мне делать? Есть ли другой способ ввода параметров конфигурации в моем классе без использования инъекции зависимостей?

+0

Можете ли вы сделать класс экземпляром вместо статического класса? – AperioOculus

ответ

1

Статический конструктор нельзя использовать для инъекции зависимостей.

Почему вы не создаете нестатический конструктор и не регистрируете EmailHelper как службу в инъекции зависимостей?

Таким образом, вы можете вводить и использовать EmailHelper везде, где вам это нужно.