今天我们来学习中间件定义的两种方式,在NET Core中最重要的莫过于是中间件了,毫不夸张的讲,NET Core就是通过多个中间件组成的;中间件的定义有两种方式,一种是定义强类型中间件,另一种是定义弱类型中间件,接下...

今天我们来学习中间件定义的两种方式,在NET Core中最重要的莫过于是中间件了,毫不夸张的讲,NET Core就是通过多个中间件组成的;中间件的定义有两种方式,一种是定义强类型中间件,另一种是定义弱类型中间件,接下来我们就好好的讲解一下如何定义这两种类型的中间件。
强类型中间件
这种类型的中间件定义是通过继承提供的固定的接口来实现的,这个固定的接口就是IMiddleware,既实现这个接口的都称作为强类型中间件
弱类型中间件
这种类型的中间件定义是通过基于约定的方式来实现的,如何你熟悉MVC,你应该知道约定大于配置这句话。
在NET Core中对于定义弱类型的中间件的约定是:
中间件类型必须有一个有效的公共构造函数,且该构造函数必须包含一个RequestDelegate类型的参数,值得注意的是该参数的位置不固定,且该构造函数的参数个数也不固定
中间件类型针对请求处理的实现必须在一个返回类型为Task类型的Invoke方法或者InvokeAsync方法中,且该方法的第一个参数类型必须为HttpContext,值得注意的是后续的参数没有任何的限制,但是由于最终这些参数都需要由DI框架提供,所以,使用的时候必须对相应的参数进行服务注册。
以上就是中间件定义的两种方式,我们可以对比一下这两种方式的异同,首先是代码的区别,我们可以很直观的看到强类型中间件通过继承接口的方式实现的方法带有两个参数,这两个参数正好是分散在弱类型构造函数和方法中的两个参数,所以由此我们可以得出任何中间件的定义都必须要提供HTTPContext和RequestDelegate这两个类型参数,只是实现提供的方式不同而已。
from: https://blog.csdn.net/weixin_30039755/article/details/112642199
本文标题为:DotNET Core中间件定义


基础教程推荐
- C#中 Json 序列化去掉null值的方法 2022-11-18
- C#调用摄像头实现拍照功能的示例代码 2023-03-09
- C# 解析XML和反序列化的示例 2023-04-14
- Unity shader实现高斯模糊效果 2023-01-16
- 实例详解C#实现http不同方法的请求 2022-12-26
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- C#中的Linq to JSON操作详解 2023-06-08