首页 > 其他分享 >中间件

中间件

时间:2024-09-03 10:27:58浏览次数:11  
标签:Console context app 中间件 WriteLine public

internal class Program
{
    static async Task Main(string[] args)
    {
        var appBuilder = new AppBuilder();

        appBuilder.Use(next =>
        {
            return async context =>
            {
                Console.WriteLine("中间件1 开始");
                await next(context);
                Console.WriteLine("中间件1 结束");
            };
        });

        appBuilder.Use(next =>
        {
            return async context =>
            {
                Console.WriteLine("中间件2 开始");
                //await next(context);
                Console.WriteLine("中间件2 结束");
            };
        });

        var app = appBuilder.Build();
        await app(new HttpContext());

        Console.ReadLine();
    }
}

public class HttpContext
{

}

public delegate Task RequestDelegate(HttpContext context);

public class AppBuilder
{
    private IList<Func<RequestDelegate, RequestDelegate>> _components = new List<Func<RequestDelegate, RequestDelegate>>();

    public AppBuilder Use(Func<RequestDelegate, RequestDelegate> middleware)
    {
        _components.Add(middleware);
        return this;
    }

    public RequestDelegate Build()
    {
        RequestDelegate app = context =>
        {
            Console.WriteLine("404");
            return Task.CompletedTask;
        };

        foreach (var component in _components.Reverse())
        {
            app = component(app);
        }

        return app;
    }
}

标签:Console,context,app,中间件,WriteLine,public
From: https://www.cnblogs.com/readafterme/p/18394056

相关文章

  • Kafka分布式集群部署实战:跨越理论,直击生产环境部署难题与解决方案,性能调优、监控与管
    本文介绍kafka的集群如何部署和安装,1-4章理论知识,第5章详解集群的部署,部署Kafka之前需要先部署好分布式的Zookeeper,不喜欢理论的可以直接看第5章,欢迎大家一起探讨技术!Zookeeper集群部署参考文章:精通Zookeeper:详解分布式集群部署全程,掌握数据一致性、选举机制与集群容错能力-......
  • 中间件实时监控,运维难题一站解决
        中间件是介于操作系统和在其上运行的应用程序之间的软件,实现了分布式应用程序的通信和数据管理,用于协调不同的系统和组件之间的通信,是连接应用与底层资源之间的桥梁。因此,中间件的稳定与高可用对于整个业务系统的可靠性和性能至关重要。    北京智和信中间件......
  • 一张图认识视频中间件
    之前我们有介绍了很多关于视频中间件的技术资料:超视网络视频中间件平台详解视频中间件:海康E-home私有协议接入,并输出标准FLV/HLS/RTSP流视频中间件:大华IPC/NVR主动注册协议接入并输出标准FLV/RTSP/HLS流视频中间件:海康ISUP设备接入并输出标准FLV/RTSP/HLS流视频中间......
  • 声明式开发(N个中间件硬解析)
    我刚入行的时候,就看到第一篇文章概述里那种描述,就觉得编程好难啊,要学那么多东西.光是技术的名字都那么一长串,b站上看那些大佬跟相声说贯口似的说着那些技术名字.要理解各种中间件,第一步,我们得破除一个恐惧,就是技术那么多,怎么学得完的恐惧.怎么破.我的角度是一个词: ......
  • .NET中常用的中间件
    .net中简述什么是中间件(Middleware)?在.NET中,中间件(Middleware)是指一组组件,它们被装配到应用程序的请求处理管道中,用来处理进入的HTTP请求和送出的HTTP响应。每个中间件组件具有以下特点:1.顺序执行:中间件组件按照在管道中定义的顺序依次执行。每个组件可以决定是......
  • linux下试验中间件canal的example示例-binlog日志的实时获取显示以及阿里巴巴中间件ca
    一、linux下试验中间件canal的example示例-binlog日志的实时获取显示    今天重装mysql后,进行了canal的再次试验,原来用的mysql5.7,今天重装直接换了5.6算了。反正测试服务器的mysql也不常用。canal启动后日志显示examplepreparetofindstartpositionjustshowmaste......
  • 【NextJS】中间件实战介绍
    原创洞窝技术使用Next.js中间件实现高性能个性化在当今的数字时代,用户期望获得量身定制的在线体验。个性化已经从一个奢侈品变成了必需品,尤其是对于希望在竞争激烈的市场中脱颖而出的企业来说。然而,实现高性能的个性化往往是一个挑战,需要在用户体验和系统性能之间取得......
  • 重生之我要当前端大王--node篇--02express路由,中间件
    重生之我要当前端大王–node篇第一篇章后端服务篇–nodeJS启动!02express路由,中间件前言阅读本章可学习到将接口抽离到独立模块,减少耦合,以及中间件的使用一、路由是什么,有什么用?路由是Express应用中用于处理客户端请求的规则和处理程序。每个路由可以定义一个特定......
  • 阿里巴巴中间件canal的搭建和使用以及linux命令下使用mail发送html格式的邮件
    一、阿里巴巴中间件canal的搭建和使用    canal可以用来监控数据库数据的变化(binlog日志),从而获得指定数据的变化。canal是应阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求时开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅......
  • docker中间件搭建
    1.docker搭建nacos集群2.2.3run-d-p8848:8848-p9848:9848-p9849:9849--restart=always--network=host-eNACOS_AUTH_ENABLE=true-eNACOS_AUTH_TOKEN=T20230703zxcvbnmasdfghjklqwertyuioT20230703zxcvbnmasdfghjklqwertyuio-eNACOS_AUTH_IDENTITY_KEY=admin20......