解釋 ASP.NET Core 中 Program 類的用途
ASP.NET Core 應用程式的啟動方式類似於 .NET 控制檯應用程式。它使用 Program.cs 檔案中定義的 Main() 方法作為應用程式的入口點。每當您啟動 Web 應用程式時,框架都會呼叫 Main() 方法。
在 ASP.NET Core 應用程式中,Main() 方法構建並執行 Host。Host 物件是 ASP.NET Core 應用程式的重要組成部分之一。它包含應用程式使用的配置和 Web 伺服器(Kestrel)。
Program.cs
以下是一個標準 ASP.NET Core 應用程式中的 Program.cs 檔案示例。
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace TutorialsPoint{ public class Program{ public static void Main(string[] args){ CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder =>{ webBuilder.UseStartup<Startup>(); }); } }
在以上示例中,
CreateHostBuilder() 方法使用預設配置建立 IHostBuilder 例項。
ConfigureWebHostDefaults() 使用 WebHostBuilder 物件將應用程式配置為使用 Kestrel。
CreateDefaultBuilder() 是一個靜態輔助方法,透過建立具有標準配置的 IHostBuilder 來簡化應用程式的建立。
UseStartup<Startup> 告訴框架使用 Startup.cs 類進行配置。
配置完 IHostBuilder 後,Build() 方法會從 IHostBuilder 建立並返回 IHost 例項。但是,應用程式仍然沒有監聽請求。
Run() 方法執行 IHost 並監聽 HTTP 請求。
如您所見,Program 類提供了初始化程式碼以建立 Web 主機並監聽傳入請求。大多數 ASP.NET Core 的樣板配置都發生在 CreateDefaultBuilder() 方法中。Startup.cs 類處理應用程式特定的配置,即應用程式所需的中介軟體管道服務。
通常,一旦應用程式開始增長,您就不會更改 Program 類,而您會經常修改 Startup 類以新增/刪除應用程式所需的 service。