NET Core 2.x Web API项目模板提供Program.cs
和Startup.cs
(默认情况下)。
如果在Startup
的构造函数中放置断点,并添加监视,则可以看到从appsettings.json
加载的值。
Startup.cs
和Program.cs
未明确加载appsettings.json
,因此必须在CreateDefaultBuilder
的{{1}}或Build
调用中发生。
Program
我查看了https://github.com/aspnet/Configuration和https://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>();
}
的代码在哪里?
答案 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