日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

ASP.NET Core中創(chuàng)建中間件的幾種方式

來源: 責(zé)編: 時間:2024-07-12 17:26:41 217觀看
導(dǎo)讀前言今天我們一起來盤點(diǎn)一下在ASP.NET Core應(yīng)用程序中添加和創(chuàng)建中間件常見的四種方式。中間件介紹ASP.NET Core中間件(Middleware)是用于處理HTTP請求和響應(yīng)的組件,它們被安排在請求處理管道中,并按順序執(zhí)行。中間件的設(shè)

前言

今天我們一起來盤點(diǎn)一下在ASP.NET Core應(yīng)用程序中添加和創(chuàng)建中間件常見的四種方式。lkY28資訊網(wǎng)——每日最新資訊28at.com

中間件介紹

ASP.NET Core中間件(Middleware)是用于處理HTTP請求和響應(yīng)的組件,它們被安排在請求處理管道中,并按順序執(zhí)行。中間件的設(shè)計(jì)是為了使其在請求處理管道中能夠以靈活和可擴(kuò)展的方式處理 HTTP 請求和響應(yīng)。lkY28資訊網(wǎng)——每日最新資訊28at.com

下圖顯示了 ASP.NET Core MVC 和 Razor Pages 應(yīng)用的完整請求處理管道:lkY28資訊網(wǎng)——每日最新資訊28at.com

lkY28資訊網(wǎng)——每日最新資訊28at.com

了解現(xiàn)有中間件的順序,以及在哪里添加自定義中間件。你可以完全控制如何重新排列現(xiàn)有中間件,或根據(jù)場景需要注入新的自定義中間件。lkY28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片lkY28資訊網(wǎng)——每日最新資訊28at.com

中間件用途

開發(fā)者通過在請求處理管道中添加不同的中間件(Middleware)組件,可以實(shí)現(xiàn)應(yīng)用程序的認(rèn)證和授權(quán)、日志記錄、異常處理、靜態(tài)文件處理、路由和端點(diǎn)映射、CORS(跨域資源共享)、會話管理、請求壓縮、國際化和本地化、緩存等各種功能。lkY28資訊網(wǎng)——每日最新資訊28at.com

通過請求委托添加中間件

我們可以通過在 WebApplication 實(shí)例上調(diào)用 Use 方法,并提供一個帶有兩個參數(shù)的 lambda 方法來實(shí)現(xiàn)。第一個參數(shù)是 HttpContext,第二個參數(shù)是管道中的實(shí)際下一個請求委托。lkY28資訊網(wǎng)——每日最新資訊28at.com

var builder = WebApplication.CreateBuilder(args);            var app = builder.Build();            app.Use(async (context, next) =>            {                // 在這里處理請求                // ...                await next.Invoke();                // 在這里處理響應(yīng)                // ...            });            app.Run();

按約定添加中間件

ASP.NET Core中提供了許多內(nèi)置中間件,例如靜態(tài)文件中間件、路由、認(rèn)證、授權(quán)中間件等。這些中間件通常已經(jīng)預(yù)先定義好了,開發(fā)者只需按照約定調(diào)用相應(yīng)的方法即可。lkY28資訊網(wǎng)——每日最新資訊28at.com

var builder = WebApplication.CreateBuilder(args);            var app = builder.Build();            // 使用靜態(tài)文件中間件            app.UseStaticFiles();            // 使用路由中間件            app.UseRouting();            // 使用認(rèn)證中間件            app.UseAuthentication();            // 使用授權(quán)中間件            app.UseAuthorization();            app.Run();

創(chuàng)建自定義中間件類

創(chuàng)建自定義中間件類

首先我們創(chuàng)建一個自定義中間件類 RequestLoggingMiddleware,它將記錄每個請求的詳細(xì)信息。lkY28資訊網(wǎng)——每日最新資訊28at.com

public class RequestLoggingMiddleware    {        private readonly RequestDelegate _next;        public RequestLoggingMiddleware(RequestDelegate next)        {            _next = next;        }        public async Task InvokeAsync(HttpContext context)        {            // 記錄請求信息            Console.WriteLine($"Request Method: {context.Request.Method}");            Console.WriteLine($"Request Path: {context.Request.Path}");            // 調(diào)用下一個中間件            await _next(context);            // 記錄響應(yīng)狀態(tài)碼            Console.WriteLine($"Response Status Code: {context.Response.StatusCode}");        }    }

創(chuàng)建擴(kuò)展方法

為了方便在應(yīng)用程序中注冊中間件,我們可以創(chuàng)建一個擴(kuò)展方法。lkY28資訊網(wǎng)——每日最新資訊28at.com

public static class RequestLoggingMiddlewareExtensions    {        public static IApplicationBuilder UseRequestLogging(this IApplicationBuilder builder)        {            return builder.UseMiddleware<RequestLoggingMiddleware>();        }    }

在應(yīng)用程序中使用自定義中間件

在 Program.cs 文件中,使用自定義中間件。lkY28資訊網(wǎng)——每日最新資訊28at.com

var builder = WebApplication.CreateBuilder(args);            var app = builder.Build();            // 使用自定義中間件            app.UseRequestLogging();            app.Run();

添加基于工廠的中間件

IMiddlewareFactory 是 ASP.NET Core 中用于創(chuàng)建和管理中間件實(shí)例的接口。它提供了一種靈活的方式來控制中間件的創(chuàng)建和生命周期管理,特別是在需要復(fù)雜依賴注入或條件實(shí)例化的場景中。lkY28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建自定義中間件工廠

實(shí)現(xiàn) IMiddlewareFactory 接口的自定義工廠類。lkY28資訊網(wǎng)——每日最新資訊28at.com

public class CustomMiddlewareFactory(IServiceProvider serviceProvider) : IMiddlewareFactory    {        private readonly IServiceProvider _serviceProvider = serviceProvider;        public IMiddleware? Create(Type middlewareType)        {            // 使用服務(wù)提供者創(chuàng)建中間件實(shí)例            return _serviceProvider.GetService(middlewareType) as IMiddleware;        }        public void Release(IMiddleware middleware)        {            // 如果需要,可以在這里釋放中間件實(shí)例(容器負(fù)責(zé)釋放資源)            (middleware as IDisposable)?.Dispose();        }    }

創(chuàng)建自定義中間件

實(shí)現(xiàn) IMiddleware 接口的自定義中間件類。lkY28資訊網(wǎng)——每日最新資訊28at.com

public class CustomMiddleware : IMiddleware    {        public async Task InvokeAsync(HttpContext context, RequestDelegate next)        {            Console.WriteLine("在這里處理請求.......");            await next(context);            Console.WriteLine("在這里處理響應(yīng).......");        }    }

注冊中間件和工廠

在 Program.cs 文件中注冊自定義中間件和工廠。lkY28資訊網(wǎng)——每日最新資訊28at.com

var builder = WebApplication.CreateBuilder(args);            // 注冊中間件和工廠到依賴注入容器            builder.Services.AddTransient<CustomMiddleware>();            builder.Services.AddTransient<IMiddlewareFactory, CustomMiddlewareFactory>();            var app = builder.Build();            // 使用基于工廠的中間件            app.UseMiddleware<CustomMiddleware>();            app.Run();

最后總結(jié)

在ASP.NET Core中添加和創(chuàng)建中間件的方式有很多種,本文列舉了四種常見的方式,具體取決于你的需求和偏好。每種方式都有其適用的場景,選擇合適的方法可以使你的代碼更加簡潔和易于維護(hù)。lkY28資訊網(wǎng)——每日最新資訊28at.com

參考文章

  • https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-8.0
  • https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/extensibility?view=aspnetcore-8.0

本文鏈接:http://m.www897cc.com/showinfo-26-100737-0.htmlASP.NET Core中創(chuàng)建中間件的幾種方式

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 我們一起聊聊設(shè)計(jì)實(shí)時聊天系統(tǒng)的架構(gòu)

下一篇: 突破與創(chuàng)新:Vue.js 創(chuàng)始人尤雨溪 2024 年度技術(shù)前瞻

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 8月總票房已突破10億!《封神》第一:口碑已經(jīng)成了

    8月5日消息,據(jù)燈塔專業(yè)版數(shù)據(jù),截至8月5日9時35分,8月總票房(含預(yù)售)已突破10億。其中,《封神》以大比分的優(yōu)勢領(lǐng)先。根據(jù)官方消息,目前該片總票房已經(jīng)超過14.
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設(shè)置樣式。可以為擁有指定屬性的 HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 這款新興工具平臺,讓你的電腦效率翻倍

    隨著信息技術(shù)的發(fā)展,我們獲取信息的渠道越來越多,但是處理信息的效率卻成為一個瓶頸。于是各種工具應(yīng)運(yùn)而生,都在爭相解決我們的工作效率問題。今天我要給大家介紹一款效率
  • 慕巖炮轟抖音,百合網(wǎng)今何在?

    來源:價(jià)值研究所 作者:Hernanderz&ldquo;難道就因?yàn)樽约旱囊粋€產(chǎn)品牛逼了,從客服到總裁,都不愿意正視自己產(chǎn)品和運(yùn)營上的問題,選擇逃避了嗎?&rdquo;這一番話,出自百合網(wǎng)聯(lián)合創(chuàng)
  • 騰訊蓋樓,字節(jié)拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之&ldquo;想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗(yàn)嗎?一起上晶核,即刻暴打!&rdquo;曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 東方甄選單飛:有些鳥注定是關(guān)不住的

    文/彭寬鴻編輯/羅卿東方甄選創(chuàng)始人俞敏洪帶隊(duì)的&ldquo;7天甘肅行&rdquo;直播活動已在近日順利收官。成立后一年多時間里,東方甄選要脫離抖音自立門戶的傳聞不絕于耳,&ldquo;7
  • 華為發(fā)布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發(fā)者大會2023(HDC.Together)大會上,HarmonyOS 4正式發(fā)布。自2019年發(fā)布以來,HarmonyOS一直以用戶為中心,經(jīng)歷四年多的發(fā)展HarmonyOS已
  • OPPO K11采用全方位護(hù)眼屏:三大護(hù)眼能力減輕視覺疲勞

    日前OPPO官方宣布,全新的OPPO K11將于7月25日正式發(fā)布,將主打旗艦影像,和同檔位競品相比,其最大的賣點(diǎn)就是將配備索尼IMX890主攝,堪稱是2000檔位影像表
  • DRAM存儲器10月價(jià)格下跌,NAND閃存本月價(jià)格與上月持平

    10月30日,據(jù)韓國媒體消息,自今年年初以來一直在上漲的 DRAM 存儲器的交易價(jià)格僅在本月就下跌了近 10%,此次是全年首次降價(jià),而NAND 閃存本月價(jià)格與上月持平。市
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久中文在线| 国产精品少妇自拍| 欧美va亚洲va香蕉在线| 欧美精品综合| 国产精品视频男人的天堂| 国产区精品视频| 亚洲丁香婷深爱综合| 日韩一区二区精品视频| 午夜一级在线看亚洲| 久久永久免费| 欧美三级乱码| 国产欧美一区二区精品忘忧草| 伊人伊人伊人久久| 日韩一区二区久久| 欧美一区二区三区久久精品茉莉花 | 美女久久网站| 欧美网站在线观看| 好看的日韩视频| 日韩亚洲欧美中文三级| 欧美一区午夜精品| 欧美理论电影网| 国产亚洲人成网站在线观看 | 欧美综合第一页| 欧美经典一区二区| 国产一区日韩二区欧美三区| 亚洲精品之草原avav久久| 欧美亚洲视频| 欧美日韩第一页| 黄色精品免费| 亚洲欧美国产高清| 欧美福利视频| 黑人巨大精品欧美一区二区| 一区二区三区视频观看| 麻豆91精品| 国产拍揄自揄精品视频麻豆| 亚洲六月丁香色婷婷综合久久| 久久精品欧美日韩精品| 国产精品久久久久久久久久妞妞| 亚洲国产精品久久久久| 久久av二区| 国产精品任我爽爆在线播放| 亚洲精品美女在线| 久久婷婷激情| 国产日产精品一区二区三区四区的观看方式 | 欧美日韩精品一区二区| 在线观看亚洲视频| 欧美一区国产二区| 国产精品国产福利国产秒拍| 亚洲精品资源| 蜜臀va亚洲va欧美va天堂 | 亚洲一区图片| 欧美日本免费一区二区三区| 亚洲第一页中文字幕| 久久国产夜色精品鲁鲁99| 国产精品毛片a∨一区二区三区| 久久免费一区| 欧美一级在线播放| 欧美激情精品久久久久久| 国产一区二区三区久久 | 国产精品自拍三区| 一区二区三区av| 欧美激情在线观看| 亚洲国产va精品久久久不卡综合| 久久精品国产99精品国产亚洲性色 | 国产一区二区按摩在线观看| 午夜国产不卡在线观看视频| 国产精品jizz在线观看美国| 一本色道久久88亚洲综合88| 欧美高清在线观看| 亚洲激情午夜| 欧美成人免费网站| 亚洲人成人一区二区三区| 美腿丝袜亚洲色图| 亚洲国产精品久久久久秋霞影院 | 亚洲精品国产欧美| 欧美va天堂| 亚洲激情六月丁香| 欧美成人dvd在线视频| 亚洲国产精品专区久久| 蜜桃伊人久久| 亚洲国产美女| 欧美精品色一区二区三区| 亚洲三级免费电影| 欧美理论在线| 日韩午夜激情av| 欧美日韩视频在线一区二区观看视频| 日韩视频一区| 欧美午夜不卡| 亚洲综合色激情五月| 国产模特精品视频久久久久| 欧美与黑人午夜性猛交久久久| 国产色综合网| 久久人人97超碰精品888| 亚洲大片av| 欧美精品啪啪| 亚洲在线一区| 国产一区 二区 三区一级| 美女视频黄免费的久久| 亚洲久久成人| 国产精品久久久久久久久久妞妞 | 性色av一区二区三区红粉影视| 国产欧美一区二区三区在线老狼 | 欧美承认网站| 夜久久久久久| 国产精品日韩在线| 久久精品毛片| 亚洲国产精品嫩草影院| 欧美日韩日韩| 亚洲欧美综合v| 精品成人一区二区三区| 欧美好吊妞视频| 一区二区三区欧美激情| 国产欧美日韩在线视频| 久久综合一区二区三区| 亚洲美女少妇无套啪啪呻吟| 国产精品美女久久久久av超清| 久久精品国产第一区二区三区最新章节 | 麻豆freexxxx性91精品| 日韩午夜三级在线| 国产欧美精品| 欧美α欧美αv大片| 亚洲午夜免费视频| 国外视频精品毛片| 欧美日韩不卡一区| 久久都是精品| 99国内精品久久| 国产在线观看91精品一区| 欧美精品在欧美一区二区少妇| 亚洲欧美中文日韩在线| 亚洲国产欧美日韩| 国产精品一区二区你懂的| 免费人成精品欧美精品| 亚洲综合精品一区二区| 在线观看视频亚洲| 国产精品久久久久久久午夜 | 国产精品成人一区二区网站软件 | 免费在线日韩av| 亚洲欧美一区二区三区久久| 亚洲高清激情| 国产精品日韩欧美一区二区| 免费国产自线拍一欧美视频| 亚洲在线观看视频网站| 亚洲国产欧美日韩| 国产日韩欧美制服另类| 欧美日本一区二区高清播放视频| 欧美在线三级| 中文av一区特黄| 亚洲国产精品综合| 国产日韩欧美在线观看| 欧美人与禽猛交乱配| 久久久久久久久综合| 亚洲一区二区视频| 亚洲日本成人| 黄网动漫久久久| 国产精品久久久久天堂| 欧美成人在线影院| 久久精品人人做人人爽电影蜜月| 一区二区三区日韩在线观看| 在线日本高清免费不卡| 国产日韩欧美高清免费| 欧美亚洲成人网| 欧美精品午夜视频| 美女精品在线| 久久精品导航| 亚洲一区欧美激情| 亚洲美女诱惑| 亚洲电影在线看| 狠色狠色综合久久| 国产欧美在线播放| 国产精品久久午夜| 欧美日韩成人综合天天影院| 免费不卡中文字幕视频| 久久精品人人做人人综合| 亚洲欧美中文日韩v在线观看| 一本色道久久88综合亚洲精品ⅰ| 亚洲国产天堂久久国产91| 一区二区亚洲欧洲国产日韩| 国产婷婷色一区二区三区在线| 国产精品地址| 欧美日韩在线大尺度| 欧美精品综合| 欧美黑人多人双交| 欧美不卡三区| 欧美mv日韩mv国产网站| 欧美成人a视频| 欧美成人在线影院| 欧美国产激情二区三区| 男人天堂欧美日韩| 免费国产一区二区| 蜜臀va亚洲va欧美va天堂 | 国产色爱av资源综合区| 国产精品一区在线观看| 国产精品永久| 国产欧美精品在线观看| 国产精品久久久久aaaa九色| 欧美性大战久久久久久久蜜臀| 欧美日韩一区二区三| 欧美日韩亚洲一区二区三区| 欧美日韩一区二区在线观看| 欧美日韩视频在线| 欧美色视频日本高清在线观看| 欧美揉bbbbb揉bbbbb| 国产精品久久久久久久久免费| 国产乱码精品|