c# - 无法从 appsettings.json 读取数据

标签 c# asp.net-core .net-core asp.net-core-2.0

我确定我有一些基本错误,但我无法发现它,抱歉。进入启动代码表明 appsettings.json 已正确加载,但测试类随后为配置类获取 null。

启动:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        var builder = new ConfigurationBuilder().AddJsonFile("appSettings.json");
        Configuration = builder.Build();
    }

    public IConfiguration Configuration { get; set; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().AddSessionStateTempDataProvider();
        services.AddSession();

        services.Configure<EnvironmentConfig>(Configuration.GetSection("EnvironmentConfig"));
    }
}

配置测试器:

public class ConfigTester
{
    private readonly IOptions<EnvironmentConfig> _environmentConfig;

    public ConfigTester(IOptions<EnvironmentConfig> environmentConfig)
    {
        _environmentConfig = environmentConfig;
    }

    public string ConfigName()
    {
        return _environmentConfig.Value.Name;         //_environmentConfig.Value is set, but Name is null
    }
}

环境配置:

public class EnvironmentConfig
{
    public string Name;

}

appSettings.json:

{
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning"
      }
    }
  },
  "EnvironmentConfig": {
    "Name": "develop"
  }
}

我错过了什么?

最佳答案

在使用 serives.Configure<T>() 配置选项之前,在您的 ConfigureServices 方法中添加以下行.要使用选项功能,您必须启用它。

services.AddOptions();

关于c# - 无法从 appsettings.json 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52347551/

相关文章:

c# - Application Insights - 自定义 TrackRequest 正在创建重复消息

javascript - 服务器中的 ddl 未更新 - asp.net

javascript - 导入两个 Html.Partial 具有相同 id 的相同 html

c# - 如何根据模型中是否有这样的值来显示一个元素?

asp.net-core - 为什么这违反了类型参数 'TUser' 的约束?

visual-studio - .Net Core 1.1.0 NuGet程序包无法在Visual Studio Mac中安装

c# - 如何通过单击操作按钮在 gridview 中设置填充复选框被选中(真)

c# - 在实体值更新期间读取值?

amazon-web-services - 使用 AWS SNS 发送短信 - .Net Core

c# - 在 HttpClient 上使用带有自定义数据的 DelegatingHandler