首页 > Web开发 > 详细

【.NETCORE】中间件与中间件扩展

时间:2021-04-09 09:47:34      阅读:32      评论:0      收藏:0      [点我收藏+]

中间件是被组装成一个应用程序管道来处理请求和响应的软件组件。

每个组件选择是否传递给管道中的下一个组件的请求,并能之前和下一组分在管道中调用之后执行特定操作。

具体如图:

技术分享图片
自己中间件类:

//自己写的中间件
    public class RequestSetOptionsMiddleware
    {
        private readonly RequestDelegate next;
        private readonly IOptions<AppOptions> options;

        public  RequestSetOptionsMiddleware(RequestDelegate next,IOptions<AppOptions> options)
        {
            this.next = next; // 下一个中间件
            this.options = options;//
        }
        //系统会自动调用
        public async Task Invoke(HttpContext httpContext)
        {
            Console.WriteLine("Invoke");
            var option = httpContext.Request.Query["optiuon"];
            if (string.IsNullOrWhiteSpace(option))
            {
                await httpContext.Response.WriteAsync("this is test");
                options.Value.Option = WebUtility.HtmlEncode(option);

            }
            else {
                await next(httpContext);
            }
        }
    }

 

中间件集扩展类:

//自定义扩展中间件-可在这里调用自己的中间件
    public static class RequestSetOptionsExtensions
    {
        public static IApplicationBuilder UseRequestSetOptions(this IApplicationBuilder app)
        {
            app.UseMiddleware<RequestSetOptionsMiddleware>();//使用中间件
            return app;
        }
    }

 

Startup->Configure中调用扩展的中间件集:

  技术分享图片

 

 

启动项目:
 技术分享图片

 

页面打印出中间件中输出的文字,说明中间件调用成功

 技术分享图片

 

【.NETCORE】中间件与中间件扩展

原文:https://www.cnblogs.com/lbonet/p/14635444.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!