首页 > 解决方案 > 如何使用 asp.net 核心从 appsettings.json 获取配置数据并做出反应

问题描述

我正在使用带有 react/redux 的 asp.net 核心,并且正在尝试将 react/redux 中的配置数据移动到 appsettings.json 文件中。但是一旦配置数据被移动;ClientApp 如何访问配置数据?

我正在为 ASP.NET Core 使用带有 Redux 启动器的 Reactjs。

更新

如果这不是存储应用程序配置的推荐方式,请告诉我是什么。

标签: c#node.jsreactjsasp.net-coreredux

解决方案


我不建议从您的客户端读取配置文件。但是,如果您想这样做,我建议您创建一个读取 json 文件并为客户端公开一些配置的服务。

您可以像这样从 ASP.Net Core 端进行配置

示例您的 json 中有这样的配置

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

所以需要用config定义匹配模型

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; }
}

然后在 Startup.cs 中注册

services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));

所以你可以在你的服务中使用

private readonly IOptions<EmailSettings> _emailSetting;

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

public string GetConfig(){
    return _emailSetting.Value.SenderName;
}

推荐阅读