如何使用中间件
1. 注册
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.Map("/test", async appbuilder => { appbuilder.Use(async (context, next) => { context.Response.ContentType = "text/html"; await context.Response.WriteAsync("1 Start<br/>"); await next.Invoke(); await context.Response.WriteAsync("1 End<br/>"); }); appbuilder.Use(async (context, next) => { await context.Response.WriteAsync("2 Start<br/>"); await next.Invoke(); await context.Response.WriteAsync("2 End<br/>"); });
// 用文件形式的中间件引入
appbuilder.UseMiddleware<TestMiddleware>();
appbuilder.Run(async ctx => { await ctx.Response.WriteAsync("hello middleware <br/>"); }); }); app.Run();
TestMiddleWare中间件中的具体实现 :
namespace 中间件 { public class TestMiddleware { private readonly RequestDelegate next; public TestMiddleware(RequestDelegate next) { this.next = next; } public async Task InvokeAsync(HttpContext context) { context.Response.WriteAsync("测试中间件开始"); await next.Invoke(context); context.Response.WriteAsync("测试中间件结束"); } } }
ps:中间件的注册顺序很重要 ;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· 支付宝 IoT 设备入门宝典(下)设备经营篇
· 万字调研——AI生成内容检测
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库