.Netcore中编写Middleware,如何传递参数?

2020-07-13 16:50发布

问题:

1.定义Middleware,在ctor中指定Action和Type类型的参数

2.在extension中调用app.UseMiddleware,并传递参数

3.Startup.cs中注册中间件

4.Main函数报错

高人隐士帮帮忙,给点建议

回答1:

Middleware的构造函数不能传递null,所以我把Action和Type的实现都拿到extension中,在运行,ok了



回答2:

InvokeAsync(HttpContext context,Action<WeChatMessager> onMessageReceived, IMessageQueue messageQueue)

app.UseMiddleware<LazyWeChatMiddleware>();



回答3:

中间件类似aop,当请求过来作为统一处理的组件,跟httpmodule差不多,传递参数没理解,一般来说,传过来一个httpcontext,每个中间件都能处理这个httpcontext里面的东西