成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解 ASP.NET Core 運行時之模塊化設計

開發 前端
ASP.NET Core 運行時,是指框架本身在運行時執行的部分,主要包括以下幾個方面:HTTP 模塊、中間件管道、路由匹配、請求處理、響應處理、視圖引擎等。

整體上可以分為以下幾個模塊:

應用程序托管模塊

應用程序托管模塊是入口點,主要負責創建 Host、解析 ConfigureServices 和 Configure 方法,創建 Pipeline 等。Host 是應用程序的主機運行時環境,它提供了一些配置和管理應用程序的基礎功能,例如配置文件的讀取、依賴注入容器的初始化、中間件的注冊和加載等。ConfigureServices 方法主要用于注冊依賴注入服務;Configure 方法則用于配置中間件管道,在這里注冊各種 Middleware 和 Endpoint。

HTTP 模塊

HTTP 模塊是 ASP.NET Core 的核心模塊,它負責處理 HTTP 請求并生成 HTTP 響應。該模塊由以下三個子模塊組成:HttpContext、HttpRequest、HttpResponse。

  1. HttpContext:表示每個 HTTP 請求的上下文。其中包含了請求對象(HttpRequest)、響應對象(HttpResponse)、路由信息、HTTP 版本以及一些自定義數據等。
  2. HttpRequest:表示一個 HTTP 請求。其中包括了請求頭、Cookie、查詢字符串、Form 表單數據、請求正文等信息。
  3. HttpResponse:表示一個 HTTP 響應。其中包括了狀態碼、響應頭、Cookie、響應正文等信息。

中間件管道

中間件管道是 ASP.NET Core 處理請求的核心部分,它通過鏈式調用各種中間件來實現 HTTP 請求處理。每個 Middleware 可以選擇把請求傳遞給下一個 Middleware 或者終止請求。中間件的注冊和執行通過 IApplicationBuilder 接口進行控制。管道的執行流程是從第一個中間件開始執行,如果當前中間件沒有終止請求,則使用 Next() 方法將請求傳遞給下一個中間件,直到所有的中間件都執行完畢并返回響應結果。

路由模塊

路由模塊負責 URL 路由和 Endpoint 的匹配工作。在路由模塊中,ASP.NET Core 提供了豐富的路由模板語法,用于構建 RESTful Web API 和 MVC 應用程序。路由模塊通常涉及到以下幾個類:Route、RouteTemplate、RouteData、RouteContext。

 ActionInvoker 模塊

ActionInvoker 模塊是 MVC/Web API 中用于調用 Controller Action 方法的核心模塊。該模塊根據路由匹配的結果獲取對應的 ActionDescriptor,然后通過反射調用 Controller 對應的 Action 方法,并自動將參數綁定到 Controller Action 方法中。

視圖引擎模塊

視圖引擎模塊用于 MVC 中的視圖渲染工作,它的主要職責是根據 Controller Action 指定的視圖名稱和模型數據,渲染出對應的 HTML 內容。視圖引擎分為兩種:Razor 視圖引擎和自定義視圖引擎。

在 ASP.NET Core 的源碼設計中,框架采用了面向對象編程的思想,利用接口、抽象類等方式實現模塊之間的松耦合關系,方便擴展和替換。設計中也使用了依賴注入、工廠等設計模式來進行對象管理和創建。總體上,ASP.NET Core 的源碼設計非常精巧,充分體現了 .NET 生態系統的優秀品質。

以下是一個 ASP.NET Core 運行時的示例代碼,以說明運行時如何工作:

using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;

namespace MyNamespace
{
    public class Startup
    {
        // Configure services for DI container
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
        }

        // Configure HTTP request pipeline
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Hello World!");
                });
                endpoints.MapControllers();
            });
        }
    }
}

在上述示例中,Startup 類是應用程序托管模塊。ConfigureServices 方法用于注冊依賴注入服務,這里使用 AddControllers() 方法來添加 MVC 控制器。Configure 方法則負責配置中間件管道,首先判斷當前是否在開發環境中,如果是,則調用 UseDeveloperExceptionPage() 中間件來為開發者提供異常信息的友好顯示;接著使用 UseRouting() 方法啟用 Routing,接下來使用 UseEndpoints() 方法來配置請求終結點,其中 MapGet() 方法配置了一個 GET 請求終結點“/”,返回“Hello World!”;MapControllers() 方法則將所有控制器動作方法映射到當前應用程序。

官方文檔:https://learn.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-7.0。

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-07-03 08:48:40

Web模塊化設計

2023-07-04 08:26:15

2009-07-20 16:14:39

ASP.NET運行時

2024-09-09 07:37:51

AspJWT權限

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設計

2009-11-27 14:17:45

ASP.NET 4運行

2009-08-10 14:31:46

ASP.NET組件設計ASP.NET控件生命

2009-07-28 17:17:19

ASP.NET概述

2021-03-04 11:10:29

容器化Docker虛擬機

2025-04-18 08:45:26

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-23 13:19:51

2017-03-06 11:13:57

ASP.NETCoreMVC

2024-10-21 07:15:08

2009-04-23 10:33:52

ASP.NET設計思想微軟

2009-08-10 14:08:15

ASP.NET服務器控ASP.NET組件設計

2009-07-22 16:25:41

ASP.NET AJA

2009-07-24 10:14:22

ASP.NET開發

2009-07-28 16:57:50

ASP.NET Ses

2009-08-05 11:14:33

ASP.NET ISA
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品综合在线 | 日韩在线播放一区 | 国产免费一二三区 | 国产精品久久久久久久久久免费看 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 天天碰夜夜操 | 国产精品一区二区久久 | 国内精品久久精品 | 国产一区二区三区精品久久久 | 精品久 | 亚洲精品4| 一区二区三区四区在线视频 | 黄色a视频| 高清视频一区二区三区 | 久久久久久久久久久福利观看 | 日韩在线大片 | 国产成人免费视频网站视频社区 | 日韩视频一区在线观看 | 亚洲伊人精品酒店 | av在线免费观看网址 | 欧美成人综合 | 精品综合视频 | 久久国产精品视频 | 五月天婷婷久久 | 日日操av | 色视频www在线播放国产人成 | 久久99精品久久久久久 | 亚洲免费视频在线观看 | 成人av免费 | 日韩一区二区三区在线视频 | 久久电影一区 | 亚洲精品一区中文字幕乱码 | 国产一区二区三区色淫影院 | 五月综合色啪 | 日本中文字幕日韩精品免费 | 国产成人高清成人av片在线看 | 免费国产视频 | 亚洲视频二区 | www.日本在线播放 | 久久这里只有精品首页 | 国产精品美女久久久久久免费 |