代码之家  ›  专栏  ›  技术社区  ›  Konrad Viltersten

.net core 2.2下配置中addjsonfile选项的默认值是什么?

  •  0
  • Konrad Viltersten  · 技术社区  · 6 年前

    根据 some wise source ,有一个方法调用 AdjScript文件 用于读取配置文件。 One of its signatures 允许指定 可选择的 重新加载更改 .

    IConfigurationRoot config = new ConfigurationBuilder()
      .SetBasePath(Directory.GetCurrentDirectory())
      .AddJsonFile("config.json", false, false)
      .Build();
    

    但是,我找不到关于默认值是什么的信息,以防在没有显式指定的情况下使用签名。我可以假设 基于它是布尔值的默认值(即 缺省(BOOL) )

    但我更喜欢有明确和联系的东西说明。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Manoj Choudhari    6 年前

    请参阅以下位置的源代码: https://github.com/aspnet/Configuration/blob/master/src/Config.Json/JsonConfigurationExtensions.cs

    根据这一点,如果不提供参数,它们是错误的。请注意以下方法:

            /// <summary>
            /// Adds the JSON configuration provider at <paramref name="path"/> to <paramref name="builder"/>.
            /// </summary>
            /// <param name="builder">The <see cref="IConfigurationBuilder"/> to add to.</param>
            /// <param name="path">Path relative to the base path stored in 
            /// <see cref="IConfigurationBuilder.Properties"/> of <paramref name="builder"/>.</param>
            /// <returns>The <see cref="IConfigurationBuilder"/>.</returns>
            public static IConfigurationBuilder AddJsonFile(this IConfigurationBuilder builder, string path)
            {
                return AddJsonFile(builder, provider: null, path: path, optional: false, reloadOnChange: false);
            }
    }
    

    正如您在前面的问题中提到的,您可以使用此方法的另一个重载来设置ReloadChange值。下面是示例代码 from MSDN :

    public class Program
    {
    
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }
    
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .ConfigureAppConfiguration((hostingContext, config) =>
                {
                    config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: false);
    
                    config.AddCommandLine(args);
                })
                .UseStartup<Startup>();
    }