当前位置: 首页 > news >正文

手机网站 wap/宁波网站快速优化

手机网站 wap,宁波网站快速优化,去成都旅游攻略,做网站建设的平台此文是在官方文档的基础上做的个人总结,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/write?viewaspnetcore-5.0 中间件是一种装配到应用管道用来处理请求与响应的组…

此文是在官方文档的基础上做的个人总结,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/write?view=aspnetcore-5.0

中间件是一种装配到应用管道用来处理请求与响应的组件。在前面的文章中我们介绍了框架自带的一些中间件,这次我们来介绍下如何自定义中间件。

一般有两种方式可以自定义中间件,会分别详细介绍:

  1. 基于约定创建
  2. 基于IMiddleware接口创建

1.基于约定创建中间件(推荐,传参更灵活)

具体的约定是:

  1. 中间件类的公有构造函数,必须要有类型为RequestDelegate的参数
  2. 必须要有名字为InvokeInvokeAsync的公共方法,这个方法的返回类型必须为Task且该方法的第一个参数类型是HttpContext.

1.1自定义中间件

首先自定义一个中间件类:

public class RequestCultureMiddleware
{private readonly RequestDelegate _next;public RequestCultureMiddleware(RequestDelegate next){_next = next;}public async Task InvokeAsync(HttpContext context, ILogger<RequestCultureMiddleware> logger){var cultureQuery = context.Request.Query["culture"];if (!string.IsNullOrWhiteSpace(cultureQuery)){var culture = new CultureInfo(cultureQuery);CultureInfo.CurrentCulture = culture;CultureInfo.CurrentUICulture = culture;}// Call the next delegate/middleware in the pipelineawait _next(context);}}

然后在Configure方法中配置即可(当然也可以把这个UseMiddleware放到IApplicationBuilder的扩展方法里):

//括号里也可以跟入参数,会传入构造函数中app.UseMiddleware<RequestCultureMiddleware>();

1.2 中间件传参数的几种方法

中间件是在应用程序启动时构造的,而且只会构造一次。

  • 构造函数的入参,支持从DI容器中解析。
  • InvokeAsync方法的入参也支持从DI容器中解析,而且每次请求(per-request)时都会解析。
  • 也可以通过UseMiddleware<T>(params object[] args)传入其他参数。

2. 基于IMiddleware接口的中间件

如基于约定的中间件实现步骤不同,我们也可以通过实现IMiddleware接口来自定义中间件:

写一个类实现IMiddleware接口:

    public class MyMiddleware : IMiddleware{ILogger<MyMiddleware> _logger;public MyMiddleware(ILogger<MyMiddleware> logger){_logger = logger;}public async Task InvokeAsync(HttpContext context, RequestDelegate next){_logger.LogInformation("----->MyMiddleware Invoked");await next(context);}}

然后在configureService方法中注册服务:

services.AddTransient<MyMiddleware>();

然后在configure方法中添加use:

//因为MyMiddleware对象是DI容器构造的,所以这里即使传入参数也没用
app.UseMiddleware<MyMiddleware>();
http://www.lbrq.cn/news/1572589.html

相关文章:

  • 赣州网上立案网址/上海关键词优化的技巧
  • 北京网站开发公司哪家好/互联网营销师有什么用
  • 邵阳做网站哪家好/百度电话怎么转人工
  • ddns做网站/新浪博客seo
  • 电商网站开发的项目描述/建站为应用技术
  • 出售网站建设群/今日热榜
  • 自己切片做网站/seo营销工具
  • wordpress搜索页面怎么仿/搜索引擎优化概述
  • 网站建设费无形资产摊销/百度软件
  • WordPress5更改logo/seo排名优化联系13火星软件
  • 北京移动端网站建设/seo关键词排名优
  • 为什么要学电商网站建设/百度新闻头条新闻
  • 深圳市人民政府网站/google 浏览器
  • 我做网站了/日照seo优化
  • phpcms v9网站建设入门/网络设计
  • 海南房产/百度seo刷排名工具
  • 深圳优质网站建设案例/品牌营销策略有哪些
  • 怎么设置批发网站怎么做/2023年时政热点事件
  • 网站图片多大比较合适/互联网广告怎么做
  • 做pc端网站咨询/seo基础知识培训视频
  • 上海政府门户网站的建设方案/个人建网站的详细步骤
  • 网站建设方案博客/佛山旺道seo优化
  • wordpress 亚马逊s3/seo刷排名工具
  • 徐州网站建设网站制作/去除痘痘怎么有效果
  • 贵阳网站建设公司哪家好/足球排名世界排名
  • 医院网站前置审批文件/拓客app下载
  • 虾皮购物网站怎么做/sem是什么职业
  • 中山市网站建设/免费涨粉工具
  • 象山做网站/百度一下 你就知道首页官网
  • 网站开发东莞/免费b2b网站大全免费
  • Coze Studio 概览(十)--文档处理详细分析
  • 从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.13
  • 存量竞争下的破局之道:品牌与IP的双引擎策略|创客匠人
  • 汽车高位制动灯难达 CIE 标准?OAS 光学软件高效优化破局
  • 音视频处理新纪元:12款AI模型的语音转录和视频理解能力横评
  • MySQL基础面试