解釋 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。

更新於: 2021年6月22日

685 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告