DoNet Core的启动过程-WebApplicationBuilder

1.前言

在NET6开始做ASP.NETCore的开发,我们首先要看的是启动过程,而WebApplication和WebApplicationBuilder 类是启动过程绕不开的类,WebApplicationBuilder 来引导启动,这和前面Core的版本引导启动分为Program和Startup是不同的,.NET6及以上版本直接使用Program中引导启动,而WebApplication在Run之前,需要做4步配置,主机配置、应用程序配置、服务注册、中间件设置。

2. 主机配置

2.1. 配置WebHost

WebApplicationBuilder 的只读属性 Host 属性是一个 IHostBuilder 实例,你可以用它来配置主机相关的设置。例如,可以通过调用 Host.ConfigureHostConfiguration 方法来配置主机配置,或者通过 Host.ConfigureLogging 方法来配置日志系统。

2.2创建实例

使用 WebApplicationBuilder.CreateDefault(args) 方法可以创建一个 WebApplicationBuilder 的实例,其中 args 是命令行参数数组。该方法会默认加载一些常见的配置和服务,如环境变量、日志、配置系统等。

var builder = WebApplicationBuilder.CreateDefault(args);

2. 配置主机

WebApplicationBuilder 的 Host 属性是一个 IHostBuilder 实例,可以用它来配置主机相关的设置。例如,可以通过调用 Host.ConfigureHostConfiguration 方法来配置主机配置,或者通过 Host.ConfigureLogging 方法来配置日志系统。

builder.Host.ConfigureHostConfiguration(configHost => 
{ 
// 配置主机配置 
configHost.AddEnvironmentVariables("PREFIX_"); 
}); 
builder.Host.ConfigureLogging(logging => 
{ 
// 配置日志系统 
logging.AddConsole(); 
});

3.配置应用程序

通过 WebApplicationBuilder 实例本身,可以配置应用程序的配置和服务。

· 配置:可以使用 builder.Configuration 来访问应用程序的配置系统,并添加额外的配置源。

·服务:使用 builder.Services 来访问服务容器,并注册服务。

// 添加额外的配置源 
    builder.Configuration.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); 
    
    // 注册服务 
    builder.Services.AddControllers(); 
    builder.Services.AddEndpointsApiExplorer(); 
    builder.Services.AddSwaggerGen();

 4.构建WebApplication

完成所有必要的配置和服务注册,就可以使用 Build 方法来构建 WebApplication 实例。

var app = builder.Build();

这个 WebApplication 实例包含了所有已配置的中间件、服务、路由等,并准备运行。

5.配置中间件

在构建 WebApplication 实例之后,你可以使用它来配置中间件。这通常包括错误处理、路由、认证、授权等。

if (app.Environment.IsDevelopment()) 
{ 
app.UseDeveloperExceptionPage(); 
app.UseSwagger(); 
app.UseSwaggerUI(); 
} 

app.UseHttpsRedirection(); 
app.UseRouting(); 
app.UseAuthorization(); 

app.MapControllers(); 
app.Run();

6.运行应用程序

调用 Run 方法或配置其他服务器(如Kestrel)来启动并运行应用程序。直接调用了 app.Run(),它会自动启动Kestrel服务器。

总结

WebApplicationBuilder 提供了构建ASP.NET Core Web应用程序所需的大部分功能,并以一种更加集中和简洁的方式组织代码。它使得配置、服务注册和中间件设置变得更加直观和易于管理。通过这个类,可以更轻松地构建、配置和运行ASP.NET Core Web应用程序。

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值