首页 > 其他分享 >如何使用中间件

如何使用中间件

时间:2023-10-29 17:45:20浏览次数:38  
标签:WriteAsync await 中间件 next 如何 context 使用 Response

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("测试中间件结束");
        }
    }
}

 

标签:WriteAsync,await,中间件,next,如何,context,使用,Response
From: https://www.cnblogs.com/zhulongxu/p/17796097.html

相关文章

  • 如何将Redis注册为本地服务
    1.安装Redis1)下载Redis下载地址:https://github.com/microsoftarchive/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.zip2)解压安装,将Redis-x64-3.2.100.zip解压到某个地址(这里解压到英文目录下)3)启动Redis:打开一个cmd窗口,使用cd命令切换到上边的解压目录,运行如下......
  • Python使用pymysql和xlrd2将Excel数据导入MySQL数据库
    在数据处理和管理中,有时候需要将Excel文件中的数据导入到MySQL数据库中进行进一步的分析和操作。本文将介绍如何使用Python编程语言实现这个过程。导入所需库importxlrd2#导入xlrd2库,用于读取Excel文件importpymysql#导入pymysql库,用于连接和操作MySQL数据库fromdat......
  • C++多线程编程——线程的基本概念和使用方法
    什么是线程?在计算机科学中,线程是进程中的一个执行控制单元,也被称为执行路径。每个进程可以包含多个线程,每条线程并行执行不同的任务。线程是操作系统可识别的最小执行和调度单位。进程和线程的区别进程是程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的......
  • WinGet 换国内源使用帮助
    修改WinGet软件源需要管理员权限,请以管理员身份运行终端。替换USTC镜像:wingetsourceremovewingetwingetsourceaddwingethttps://mirrors.ustc.edu.cn/winget-source若出现0x80073d1b:smartscreenreputationcheckfailed.错误,请检查网络连接或暂时关闭SmartScree......
  • 如何定义数据库表之间的关系
    特别说明数据库的正规化是关系型数据库理论的基础。随着数据库的正规化工作的完成,数据库中的各个数据表中的数据关系也就建立起来了。在设计关系型数据库时,最主要的一部分工作是将数据元素如何分配到各个关系数据表中。一旦完成了对这些数据元素的分类,对于数据的操作将依赖于这些数......
  • 使用 Chrome 开发者工具去除某些网站上无法关闭的模态对话框
    有些网页设计得具有缺陷,模态对话框弹出来之后,找不到关闭按钮,导致对话框关闭不掉,很尴尬。其实可以通过使用Chrome开发者工具移除模态对话框对应的DOM元素,来实现去除模态对话框的目的。具体操作步骤:打开Chrome开发者工具,切换到Elements标签页,找到模态对话框对应的DOM元......
  • SAP UI5 官网上提供的例子,如何下载到本地运行试读版
    上个月的时候,有个朋友问了我这个问题,SAPUI5官网上的例子,如何下载到本地运行呢?本文就来介绍详细步骤。我们打开SAPUI5官方帮助文档,点击Samples:然后从左边随便选一个Samples,比如Breadcrumbs:然后在屏幕右侧看到的区域,就是这个例子渲染出来的动态效果:点击Download......
  • 转岗项目经理后,我是如何分析需求的
    项目经理有一项工作就是需求分析,需求的本质是根据认知进行假设,然后给出判断。如果需求分析的结果出了问题,那么产品也必然会失败。本文针对如何进行需求分析展开分析,希望能对你有所启发。一、什么是需求为什么要明确需求的定义,因为需求很容易被误解。在这里我们要区分下用户需求和产......
  • 转岗项目经理后,我是如何做竞品分析的
    竞品分析无论作为产品经理、运营岗位还是UE交互体验设计师,都是其必备技能和工作范畴之一。但是如何通过竞品分析提炼出有效信息,为业务或是设计决策提供有力的数据支撑,仍然值得我们进行更多的思考。在本文中 我整理了竞品分析的全过程,希望能帮到你。一、明确概念竞品分析是指对:现有......
  • 使用 excel 快速拼接省市区镇街村居五级区划完整名称
    你知道的越多,你不知道的越多点赞再看,养成习惯文章目录前言数据准备excel函数附件前言之前做了国家区划的映射关系,在其过程中,使用代码区拼接完整的五级区划,感觉还是比较麻烦的,后面偶然在excel上发现可以使用函数去完成这个拼接操作,记录一下方法。数据准备首先需要准备3个广......