.Net core---中间件

.Net5跨平台本质

 跨平台的原因在于框架已经内置了一个主机,只要是程序启动,就是启动了主机,就可以监听端口;请求来了,只要是请求这个端口,主机就可以相应,所以无论是Windows还是在Linux下开发,都是要第一步完成环境的;这样就不同拘泥于在Windows还是Linux上。

中间件

中间件的执行,是一个俄罗斯套娃;
1.先use先执行,每一次Use一个中间件,其实就是在之前的基础上,套了一层;
2.请求来了以后,真正执行的时候,是一层一层的内部执行,然后再执行出来; --俄罗斯套娃
增加程序的扩展性,如果想要增加一层,直接增加一个中间件就可以来完成;

.NET5常用中间件

1.app.Run中断式,只要是使用当前中间件,后面的中间件都不执行;
2.app.Map判断路径中是否包含什么内容;
3.app.MapWhen判断式,两个委托,第一个委托作为判断条件内容, 第二个委托,是要执行的逻辑;

中间件的多种引用方式
1.中间件的内容可以独立开放入到一个独立的类中去--需要一个规则

 public class FirstMiddleware
    {
        /// <summary>
        ///  要求构造函数带有RequestDelegate参数类型——目的是为了得到下一个中间件;
        ///  必须包含async Task Invoke方法,方法参数为HttpContext
        /// </summary>
        /// 
        private readonly RequestDelegate _next;
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="next"></param>
        public FirstMiddleware(RequestDelegate next)
        {
            _next = next;
        }


        public async Task Invoke(HttpContext context)
        {
            await context.Response.WriteAsync($"<h1 style='color:red'>{nameof(FirstMiddleware)}——Hello Word Start</h1>");
            await _next(context);
            await context.Response.WriteAsync($"<h2 style='color:blue'>{nameof(FirstMiddleware)}——Hello Word End</h1>");
        }
    }

2.startup.cs中添加

 //扩展中间件
            app.UseMiddleware<FirstMiddleware>();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值