根据一些明智的消息来源,有一种名为AddJsonFile的方法用于读取配置文件。它的签名之一允许指定optional和reloadOnChange。
IConfigurationRoot config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("config.json", false, false)
.Build();
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用没有明确指定的签名,我找不到有关默认值是什么的信息。我可以假设它是false,因为它是布尔值的默认值(即default(bool)是false)。
但我更喜欢明确且可链接地陈述内容。
请参阅以下源代码: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);
}
}
Run Code Online (Sandbox Code Playgroud)
正如您之前在问题中提到的,您可以使用此方法的另一个重载来设置 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>();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2362 次 |
| 最近记录: |