【问题标题】:Migration asp.net web api to asp.net core将 asp.net web api 迁移到 asp.net core
【发布时间】:2016-11-16 22:38:30
【问题描述】:

我的 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;

        }

如果我使用公共构造函数,它不会被调用。我应该怎么办?是否有另一种方法可以在不使用依赖注入的情况下在我的类中注入配置设置?

【问题讨论】:

  • 你能让类成为实例类型而不是静态类吗?

标签: asp.net asp.net-core migration


【解决方案1】:

静态构造函数不能用于依赖注入。

为什么不创建一个非静态构造函数并将 EmailHelper 注册为依赖注入中的服务?

通过这种方式,您可以在任何需要的地方注入和使用 EmailHelper。

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 2014-03-15
    • 2022-01-24
    • 1970-01-01
    • 2021-05-03
    • 2017-08-27
    • 2016-06-30
    • 2018-07-04
    相关资源
    最近更新 更多