1. 项目结构

2. Program文件(启动过程)
实现IHostBuilder接口(ConfigureServices、ConfigureAppConfiguration、ConfigureHostConfiguration)并打印出来

3. Program文件解析
IHostBuilder 程序初始化抽象。(应用程序启动的核心接口), 接口定义:

a. ConfigureWebHostDefaults:注册组件(配置组件、容器组件等)。
b. ConfigureHostConfiguration:设置生成器自身的配置。 这将用于初始化 IHostEnvironment 以便稍后在生成过程中使用。 可多次进行调用,并累加结果。配置应用程序启动时必要的配置,比如程序启动时需要监听的端口、URL地址等。
c. ConfigureAppConfiguration: 为生成过程和应用程序的其余部分设置配置。 可多次进行调用,并累加结果。 可在 Configuration(用于后续操作)和 Services 中获取结果。嵌入自己的配置文件,供应用程序读取。
d. ConfigureServices:向容器添加服务。 可多次进行调用,并累加结果。向容器中注入应用的组件。
e. startup.Configure:注入中间件,处理HttpContext整个的请求过程。
程序执行顺序:
ConfigureWebHostDefaults-->ConfigureHostConfiguration-->ConfigureAppConfiguration-->ConfigureServices-->ConfigureLogging-->startup-->startup.ConfigureServices-->startup.Configure

startup文件:
