01 .net core 3.x 启动顺序

  • A+
所属分类:.NET技术
摘要

   


1. .net core 3.x启动执行顺序

  1. ConfigureWebHostDefaults:使用.net core 3.x的默认配置
  2. ConfigureHostConfiguration
  3. ConfigureAppConfiguration
  4. ConfigureServices
  5. ConfigureLogging
  6. Startup
  7. Startup.ConfigureSerices:主要是用于注册服务容器,例如进行依赖注入和读取配置文件等。
  8. Startup.Configure:.net core 3.x启动时会调用这个方法,这里主要是配置HTTP请求管道,例如路由、mvc、静态文件等。

2. 例子

asp.net core本质上是一个命令行程序,从Program.cs的Main方法启动。新建一个API类型的模板(默认已经配置好了一些功能)来进行测试。

01 .net core 3.x 启动顺序

 

 

public class Program {     public static void Main(string[] args) {         CreateHostBuilder(args).Build( ).Run( );     }      public static IHostBuilder CreateHostBuilder(string[] args) =>         Host.CreateDefaultBuilder(args)             .ConfigureWebHostDefaults(webBuilder => {                 // 这里调用了Startup这个类作为配置                 webBuilder.UseStartup<Startup>( );             }); }   public class Startup {     // 这里的configuration也是通过依赖注入获得     // 因为.net core默认已经进行了一些依赖注入的绑定     public Startup(IConfiguration configuration) {         Configuration = configuration;     }      public IConfiguration Configuration { get; }      // This method gets called by the runtime. Use this method to add services to the container.     public void ConfigureServices(IServiceCollection services) {         // 这里添加我们自己依赖注入服务          services.AddControllers( );     }      // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.     public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {          if (env.IsDevelopment( )) {             app.UseDeveloperExceptionPage( );         }          // .NET Core 3.x的执行管道         app.UseRouting( );          app.UseAuthorization( );          app.UseEndpoints(endpoints => {             endpoints.MapControllers( );         });     } }