【问题标题】:NET6 Make appsettings.json required instead of the default optionalNET6​​ 使 appsettings.json 成为必需,而不是默认的可选
【发布时间】:2022-08-20 02:03:13
【问题描述】:

WebAppllicationBuilder 构建 Configuration 并默认添加一些提供程序,例如:

  • “appsettings.json”的 JsonConfigurationProvider 或
  • “secrets.json”的 JsonConfigurationProvider

它们添加了参数 optional: true

我需要 \"appsettings.json\" 是必需的,而不是可选的。当然,我可以添加额外的 json 文件提供程序并使用新设置再次映射相同的文件。但是,如果有办法修改默认提供程序并将其中一个设置为可选,代码会更好看:false。

var builder = WebApplication.CreateBuilder(args);
builder.Configuration     
        .AddJsonFile(\"appsettings.json\", optional: false, reloadOnChange: true)
        // here I need to add \"secrets.json\" again, because secrets are loaded by
        // default json provider but overwritten by above
        // .AddUserSecrets<Program>(optional: true)
        // (I put the same key in both files, just marked \"from-secrets\" in \"appsettings.json\" to indicate what is needed)
        .AddEnvironmentVariables(\"whatever_\");

如何修改默认提供者的选项?

马立克

    标签: c# asp.net-core


    【解决方案1】:

    我目前的黑客是

    var builder = Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((_, builder) =>
        {
            builder
                .Sources.OfType<JsonConfigurationSource>()
                .First(x => x.Path == "appsettings.json")
                .Optional = false;
        })
    

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-02
      相关资源
      最近更新 更多