解释 ASP.NET Core 中 Startup 类的作用
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; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services){
services.AddControllersWithViews();
}
// 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();
}
else{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see 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?}");
});
}
}
}Startup 类包含两个方法
ConfigureServices():注册应用程序所需的服务。
Configure():配置中间件管道,控制应用程序如何处理 HTTP 请求并发送响应。
服务
服务是模块化的、松散耦合的组件,专注于完成一项任务,例如缓存、身份验证等。在 ASP.NET Core 中,服务只是提供特定功能给应用程序的 C# 类。
您可以使用第三方 Nuget 库提供的服务,也可以自己编写服务。无论在哪里创建,都必须在 ConfigureServices() 方法中进行配置。
Startup 类使用 IServiceCollection 来保存应用程序所需的所有服务。它还配置依赖注入 (DI)。因此,这些服务将由 DI 容器自动注入到您的代码中。
中间件
中间件定义应用程序如何处理传入的 HTTP 请求。它还处理传出的 HTTP 响应。
中间件由按顺序执行的小模块组成,这些模块可以转换传入的请求或传出的响应。中间件可以执行各种任务,包括日志记录、身份验证和授权、服务静态文件、错误处理等。
需要注意的是,中间件的顺序很重要。ASP.NET Core 框架按您定义的顺序执行中间件代码。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP