.net core 启动过程
Asp.Net Core 3.1学习- 应用程序的启动过程(5) - 魏杨杨 - 博客园 (cnblogs.com)
2.1、ConfigureWebHostDefaults
这个阶段注册了我们应用程序必要的几个组件,比如说配置的组件、容器的组件
2.2、ConfigureHostConfiguration
它是用来配置我们应用程序启动时必要的配置。比如说我们应用程序启动时所需要的监听的端口、我们需要监听的Url地址这些。在这个过程我们可以嵌入一些我们自己的配置内容注入到我们的配置的框架中去
2.3、ConfigureAppConfiguration
是让我们来嵌入我们自己的配置文件供应用程序来读取,这些配置将来就会在后续的应用程序执行过程中间每个组件读取
2.4、ConfigureServices、ConfigureLogging、Startup、Startup.ConfigureServices
这些的话都是用来往容器里面注入我们的应用的组件
2.5、Startup.Configure
是我们用来注入我们的中间件,处理HttpContext整个请求过程的
3、Startup类非必要
Startup这个类其实不是必要的,在Progarm里面也可以配置,
1 public static IHostBuilder CreateHostBuilder(string[] args) => 2 Host.CreateDefaultBuilder(args) 3 //入参 IWebHostBuilder 4 .ConfigureWebHostDefaults(webBuilder => 5 { 6 Console.WriteLine("ConfigureWebHostDefaults"); 7 // webBuilder.UseStartup<Startup>(); 8 webBuilder.ConfigureServices(services =>//对等Startup里面的Startup.ConfigureServices 9 { 10 services.AddControllers(); 11 }) 12 .Configure(app =>// 对等Startup里面的Startup.Configure 13 { 14 //if (env.IsDevelopment()) 15 //{ 16 // app.UseDeveloperExceptionPage(); 17 //} 18 19 app.UseHttpsRedirection(); 20 21 app.UseRouting(); 22 23 app.UseAuthorization(); 24 25 app.UseEndpoints(endpoints => 26 { 27 endpoints.MapControllers(); 28 }); 29 }); 30 }) 31 //入参 IServiceCollection 32 .ConfigureServices(services => 33 { 34 Console.WriteLine("ConfigureServices"); 35 }) 36 //委托入参是:IConfigurationBuilder 37 .ConfigureAppConfiguration(builder => 38 { 39 Console.WriteLine("ConfigureAppConfiguration"); 40 }) 41 42 //入参IConfigurationBuilder 43 .ConfigureHostConfiguration(builder => 44 { 45 Console.WriteLine("ConfigureHostConfiguration"); 46 }) ;