解释 ASP.NET Core 中 Startup 类的用途

asp.netserver side programmingprogramming

Startup 类配置应用程序的服务并定义中间件管道。

一般来说,Program 类是您配置应用程序基础结构的地方,例如 HTTP 服务器、与 IIS 的集成以及配置源。相反,Startup 类定义应用程序使用哪些组件和功能以及应用程序的中间件管道。

Startup.cs

以下是标准 ASP.NET Core 应用程序中的示例 Startup.cs 文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace TutorialsPoint{
   public class Startup{
      public Startup(IConfiguration configuration){
         Configuration = configuration;
      }

      public IConfiguration Configuration { get; }

      // 此方法由运行时调用。使用此方法将服务添加到容器。
      public void ConfigureServices(IServiceCollection services){
         ser​​vices.AddControllersWithViews();
      }

      // 此方法由运行时调用。使用此方法配置 HTTP 请求管道。
      public void Configure(IApplicationBuilder app, IWebHostEnvironment env){
         if (env.IsDevelopment()){
            app.UseDeveloperExceptionPage();
         }
           else{
            app.UseExceptionHandler("/Home/Error");
            // 默认 HSTS 值为 30 天。您可能需要针对生产场景更改此值,请参阅 https://aka.ms/aspnetcore-hsts。
            app.UseHsts();
         }
         app.UseHttpsRedirection();
         app.UseStaticFiles();

         app.UseRouting();

         app.UseAuthorization();

         app.UseEndpoints(endpoints =>{
            endpoints.MapControllerRoute(
               name: "default",
               pattern: "{controller=Home}/{action=Index}/{id?}");
         });
      }
   }
}

启动类包含两个方法:

  • ConfigureServices():注册应用程序所需的服务。

  • Configure():配置中间件管道,控制应用程序如何处理 HTTP 请求并发送响应

服务

服务是模块化、松散耦合的组件,专注于完成一项任务,例如缓存、身份验证等。在 ASP.NET Core 中,服务只是为应用程序提供特定功能的 C# 类。

您可以使用第三方 Nuget 库提供的服务,也可以自己编写。无论它们在何处创建,都必须在 ConfigureServices() 方法中进行配置。

Startup 类使用 IServiceCollection 来保存应用程序所需的所有服务。它还配置依赖项注入 (DI)。因此,这些服务由 DI 容器自动注入到您的代码中。

中间件

中间件定义应用程序如何处理传入的 HTTP 请求。它还处理传出的 HTTP 响应。

中间件由按顺序执行的小模块组成,以转换传入的请求或传出的响应。中间件可以执行各种任务,包括日志记录、身份验证和授权、服务静态文件、错误处理等。

需要注意的一件重要事情是中间件的顺序很重要。ASP.NET Core 框架按照您定义它的顺序执行中间件代码。

 


相关文章