繁体   English   中英

在服务 .net core 中获取 appsettings.json 值

[英]Get appsettings.json values in service .net core

我有appsettings.json文件,我想在其中声明文件的路径。

"Paths": { "file": "C:/file.pdf" }

我想在我的服务中访问这个值,我尝试这样做:

public class ValueService: IValueService
{
    IConfiguration Configuration { get; set; }

    public MapsService(IConfiguration configuration)
    {
        this.Configuration = configuration;
    }


    public string generateFile()
    {

           var path = Configuration["Paths:file"] ;
    }

}

但是我得到了var path空值

Startup.cs文件声明了appsettings.json因为它从那里获取连接字符串。 是否可以在startup.cs类之外访问这些值?

您应该在 ConfigureServices 中注册配置:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddSingleton<IConfiguration>(Configuration);
}

您可以在此处查看我的代码以了解详细信息。 基本上我想阅读电子邮件设置和我的电子邮件设置的结构看起来像这样

"EmailSettings": {
    "MailServer": "",
    "MailPort": "",
    "Email": "",
    "Password": "",
    "SenderName": "",
    "Sender": "",
    "SysAdminEmail": ""
  }

然后我需要定义一个这样的类来保存 appSetting 中的所有信息

 public class EmailSettings
    {
        public string MailServer { get; set; }
        public int MailPort { get; set; }
        public string SenderName { get; set; }
        public string Sender { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }
        public string SysAdminEmail { get; set; }
    } 

最后我注入我的服务类或任何你想要的

private readonly IOptions<EmailSettings> _emailSetting;

public EmailSender(IOptions<EmailSettings> emailSetting)
{
    _emailSetting = emailSetting;
}

然后打电话

var something = _emailSetting.Value.SenderName

可以在此处找到电子邮件发件人文件

如果您有任何问题,请告诉我。

** 请注意,此示例可帮助您在类库等服务类中读取 appSetting,或者我们可以从主 mvc 应用程序外部访问 appsetting 数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM