如何在ASP.NET Core中加载appsettings.json

时间:2018-06-13 21:59:29

标签: asp.net-core appsettings

NET Core 2.x Web API项目模板提供Program.csStartup.cs(默认情况下)。

如果在Startup的构造函数中放置断点,并添加监视,则可以看到从appsettings.json加载的值。

enter image description here

Startup.csProgram.cs未明确加载appsettings.json,因此必须在CreateDefaultBuilder的{​​{1}}或Build调用中发生。

Program

我查看了https://github.com/aspnet/Configurationhttps://github.com/aspnet/Hosting上的Microsoft源代码,特别是WebHostBuilder,但我无法看到它发生的位置。

加载public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>(); } 的代码在哪里?

1 个答案:

答案 0 :(得分:3)

appsettings.json通过调用CreateDefaultBuilder中的Microsoft.AspNetCore.WebHost.加载

 //snip
 config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
 //snip

源代码在GitHub上可用-https://github.com/aspnet/AspNetCore/blob/master/src/DefaultBuilder/src/WebHost.cs#L165