隐藏页面特效

NetCore消息管道 Middleware

中间件定义

/// <summary> /// 自定义中间件1 /// </summary> public class MyMiddleware : IMiddleware { public async Task InvokeAsync(HttpContext context, RequestDelegate next) { Console.WriteLine("MyMiddleware_1,开始处理"); await next.Invoke(context); Console.WriteLine("MyMiddleware_1,结束"); } } /// <summary> /// 自定义中间件2 /// </summary> public class MyMiddleware2 : IMiddleware { public async Task InvokeAsync(HttpContext context, RequestDelegate next) { Console.WriteLine("MyMiddleware_2,开始处理"); await next.Invoke(context); Console.WriteLine("MyMiddleware_2,结束"); } } /// <summary> /// 通过拓展方法调用 /// </summary> public static class Middleware2AppBuilderExtensions { public static IApplicationBuilder UseMiddleware2(this IApplicationBuilder app) { return app.UseMiddleware<MyMiddleware2>(); } }

中间件注册

//注入中间件 builder.Services.AddSingleton<MyMiddleware>(); builder.Services.AddSingleton<MyMiddleware2>();

消息管道中加入中间件处理

//UseMiddleware方式调用 app.UseMiddleware<MyMiddleware>(); //拓展方式调用 app.UseMiddleware2(); //Use方式加入处理逻辑到消息管道 app.Use(async (context, next) => { // await context.Response.WriteAsync("Begin Custom Middleward"); Console.WriteLine("Begin Custom Middleward"); await next.Invoke(); // await context.Response.WriteAsync("End Custom Middleward"); Console.WriteLine("End Custom Middleward"); }); //Run方式作为处理终结点,不再调用下一个middleward app.Run(async (context) => { //await context.Response.WriteAsync("Middleward EndPoint"); Console.WriteLine("Middleward EndPoint"); });

运行结果

 


__EOF__

本文作者DaiWK
本文链接https://www.cnblogs.com/daiwk/p/18306347.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   DaiWK  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示