WebAPI-Program
WebAPI-Program
在 ASP.NET Core 中,程序的入口点通常是在 Program.cs 文件中定义的,这个文件负责配置和启动 Web 应用程序
Program.cs 文件中的主要对象是 WebApplicationBuilder 和 WebApplication,这两个对象分别用于配置和构建应用程序
WebApplicationBuilder
WebApplicationBuilder 是用于配置应用程序的构建器对象。它提供了一种集中配置应用程序的方式,包括配置服务、中间件、主机和环境等。
Configuration:获取或设置配置提供程序。Environment:获取当前的IWebHostEnvironment对象,用于访问环境信息。Services:获取IServiceCollection,用于注册服务。Build():构建WebApplication实例。
WebApplication
WebApplication 是实际运行的应用程序实例。它负责配置和执行中间件管道,并处理 HTTP 请求。
主要方法和属性
Environment:获取当前的IWebHostEnvironment对象。Use*方法:用于配置中间件,例如UseRouting、UseEndpoints、UseAuthentication等。Run():启动应用程序并开始监听传入的请求。
.NET不同版本
需要注意的是,在.NET 6和.NET Core 3.1中,程序的入口(Program)是调用了不同的方法来启动ASP.NET项目
.NET Core 3.1
.NET Core 3.1调用了CreateHostBuilder方法来初始化项目
1 | |
.NET 6
.NET 6调用了WebApplication
1 | |
Startup.cs
在ASP.NET Core中,Startup.cs 文件是一个非常重要的文件,它用于配置应用程序的启动过程。Startup.cs 文件中的 Startup 类包含两个主要方法:ConfigureServices 和 Configure。这两个方法分别用于配置应用程序的服务和中间件。
在 .NET 6.0 中,ASP.NET Core 引入了一种新的简化启动模式,称为“最小API”(Minimal API)。这种新模式旨在减少样板代码,使应用程序的启动配置更加简洁和直观。因此,传统的 Startup.cs 文件在 .NET 6.0 中被取消了,取而代之的是在 Program.cs 文件中直接配置服务和中间件
1 | |
ConfigureServices
ConfigureServices 方法用于配置应用程序的服务。这些服务可以是任何需要通过依赖注入(Dependency Injection, DI)容器管理的对象,包括数据库上下文、业务逻辑类、第三方库等。
注册服务:将服务注册到DI容器中,以便在应用程序的其他部分通过构造函数、属性或方法注入使用。
配置选项:设置应用程序的各种配置选项,如数据库连接字符串、日志记录配置等。
添加框架服务:注册MVC、身份验证、信号R等框架服务。
Configure
Configure 方法用于配置应用程序的请求处理管道。通过在这个方法中注册中间件,你可以定义HTTP请求如何被处理。
- 注册中间件:将中间件组件添加到请求处理管道中,以便它们可以在请求到达最终处理程序(如控制器)之前或之后执行特定的逻辑。
- 配置中间件顺序:中间件的执行顺序由它们在
Configure方法中的注册顺序决定。先注册的中间件会先处理请求,后注册的中间件会后处理请求。 - 设置路由:定义应用程序的路由规则,以便将请求映射到相应的控制器和动作。
MapControllers
在 .NET 6.0 及更高版本中,ASP.NET Core 的中间件配置有所简化。特别是,UseRouting 和 UseEndpoints 方法被合并到了 MapControllers 和其他 Map 方法中。这使得配置更加简洁和直观。
1 | |
在 .NET 6.0 及更高版本中,MapControllers 方法不仅映射了控制器路由,还隐式地包含了路由和终结点的配置。这意味着你不再需要显式调用 UseRouting 和 UseEndpoints,因为 MapControllers 会自动处理这些步骤