[英]What is the default for AddJsonFile options in configuration under .NET Core 2.2?
根据一些明智的消息 ,有一个名为AddJsonFile的方法可以读取配置文件。 其签名之一允许指定optional和reloadOnChange 。
IConfigurationRoot config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("config.json", false, false)
.Build();
但是,如果我使用没有明确指定的签名,则无法找到默认值的信息。 我可以假设它是false ,这是因为它是布尔值的默认值(即default(bool)为false )。
但是我更喜欢明确且可链接地陈述内容。
请参阅以下源代码: https : //github.com/aspnet/Configuration/blob/master/src/Config.Json/JsonConfigurationExtensions.cs
因此,如果您不提供参数,则它们为false。 请注意以下方法:
/// <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);
}
}
如您在问题中前面提到的,您可以使用此方法的另一个重载来设置reloadOnChange值。 以下是来自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>();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.