在這篇文章中,我將帶領大家詳細學習ASP.NET Core 中的Main方法,在這篇文章中,我將向大家詳細介紹下面幾個問題:
- ASP.NET Core Main方法的重要性
- 為什么我們在ASP.NET Core中會有一個Main方法?
- 當你運行一個ASP.NET Core應用程式的時候,背后發生了什么?
為了解釋這些問題,我們首先打開,在之前的文章中,新建的空模板的ASP.NET Core專案,

你可以看到我們有一個Program類檔案,里面包含圖中所示的代碼,
從上圖中,我們可以看到程式包含一個公共的靜態無回傳值的Main方法,我們已經知道,當我們創建控制臺應用程式的時候,也會有有一個Program類,其中也有一個Main方法,控制臺應用程式中的Main方法,是應用程式的入口,
現在的問題是,我們這里并不是創建的控制臺應用程式,而是創建的一個ASP.NET Core Web應用程式,那么我們為啥也有一個Main方法呢?
為什么我們在ASP.NET Core中會有一個Main方法?
你需要特別注意的是,ASP.NET Core應用程式,最開始啟動的時候,就是作為一個控制臺應用程式啟動的,Main方法就是ASP.NET Core Web應用程式的入口,
所以當我們執行ASP.NET Core應用程式的時候,它會首先去找Main方法,這是應用程式執行的入口,Main方法配置這個ASP.NET Core,然后啟動程式,
如果你仔細查看Main方法的內容,你會發現,它呼叫的是CreateHostBuilder方法,并且把命令列的引數args作為引數傳遞過去,

下面的圖片中,CreateHostBuilder方法,回傳的是,實作IHostBuilder介面的物件,

在Main方法中,在IHostBuilder物件上,當Build方法被呼叫的時候,就會生成一個Web主機,然后我們的ASP.NET Core應用程式就會托管在主機中,
最后,在Web主機上,我們呼叫了Run方法,就會啟動我們的Web應用程式,也就開始偵聽HTTP請求了,
CreateHostBuilder方法呼叫靜態的CreateHostBuilder方法, 方法配置主機的默認設定,現在先就這么理解吧:CreateDefaultBuilder創建了一個有默認設定的主機,
Startup 類
當我們創建了Web主機,Startup類同樣使用了IWebHostBuilder 介面的UseStarpup擴展方法來配置,Starpup有下面兩個方法:

ConfigureServices配置應用程式所需要的服務,Configure方法配置應用程式請求的管道,在后面的文章中,我將會詳細介紹這兩個方法,
在下篇文章中,我將會,帶領大家學習ASP.NET Core InProcess 托管,這篇文章,我向大家介紹了ASP.NET Core 中的Main方法,希望能幫到大家,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/49230.html
標籤:.NET Core
上一篇:以個人身份加入.NET基金會
