.NET Core 3.X路由中间件和终结点中间件
2024-10-14
38
在ASP.NET Core 3.X里app.UseRouting();和app.UseEndpoints成对出现。
app.UseRouting()负责匹配路由与终结点(端点),解析出路由信息(把请求解析成路由),写进HttpContext,传给下一个中间件。
UseRouting根据路由信息来选择一个端点。端点就是一个终端中间件(末尾的),布置又一个,每一个Action都可以是一个终端中间件。
UseEndpoints终结点中间件,与UseRouting中间件必须成对使用,两个中间件之间还能添加一些其他的中间件。这里是配置中间件和路由之间的映射。终结点可以简单理解为 MVC的/控制器/action。
以下示例说明UseRouting中间件获取路由信息,包括路由数据,获取对应中间件。
app.UseRouting();
//自己添加一个中间件,获取路由信息
app.Use(async (context, next) =>
{
var ep = context.GetEndpoint();
//如果用模板可以或者值
var rv = context.Request.RouteValues;
await next();
});
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
endpoints.MapGet("/Home", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
});
如果把自己的中间件放在UseRouting之前,则ep为Null。
UseEndpoints则负责配置和执行。
更新于:1个月前赞一波!
相关文章
- Sylvan.Data.Excel 性能优异的开源.NET Excel数据读取库
- ASP.NET Core 中常用的内置中间件
- .NET9 F#有什么新特性?
- .NET 开源 ORM FreeSql 使用教程
- .NET9 C# 13 有哪些新特性?
- .NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
- .NET 9 中System.Text.Json 的新增功能
- 什么是.NET渐进式Web应用(PWA)
- .NET开发中常见的异常报错原因和解决方法?
- .NET框架和CLR的工作原理?
- ASP.NET MVC与Web Forms的区别
- .NET C#中的IEnumerable和IEnumerator的区别
- 使用ADO.NET连接到南大通用GBase 8s数据库
- 鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?
- ASP.NET Core使用partial标签报错
- .NET 9 即将推出的功能Task.WhenEach
- .NET 使用HttpClientFactory+Polly替代直接使用HttpClient
- .NET Framework被淘汰了吗?
- 强大的 .NET Mock 框架 单元测试模拟库Moq使用教程
- Asp.Net Core进程内托管 和 进程外托管的区别
文章评论
评论问答