6.ASP.NET Core中的Main方法


在這篇文章中,我將帶領大家詳細學習ASP.NET Core 中的Main方法。在這篇文章中,我將向大家詳細介紹下面幾個問題:

  1. ASP.NET Core Main方法的重要性
  2. 為什么我們在ASP.NET Core中會有一個Main方法?
  3. 當你運行一個ASP.NET Core應用程序的時候,背后發生了什么?

為了解釋這些問題,我們首先打開,在之前的文章中,新建的空模板的ASP.NET Core項目。

image

         你可以看到我們有一個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作為參數傳遞過去。

image

下面的圖片中,CreateHostBuilder方法,返回的是,實現IHostBuilder接口的對象。

image

        在Main方法中,在IHostBuilder對象上,當Build方法被調用的時候,就會生成一個Web主機。然后我們的ASP.NET Core應用程序就會托管在主機中。

       最后,在Web主機上,我們調用了Run方法,就會啟動我們的Web應用程序,也就開始偵聽HTTP請求了。

CreateHostBuilder方法調用靜態的CreateHostBuilder方法, 方法配置主機的默認設置。現在先就這么理解吧:CreateDefaultBuilder創建了一個有默認設置的主機

Startup 類

當我們創建了Web主機,Startup類同樣使用了IWebHostBuilder 接口的UseStarpup擴展方法來配置。Starpup有下面兩個方法:

image

       ConfigureServices配置應用程序所需要的服務,Configure方法配置應用程序請求的管道。在后面的文章中,我將會詳細介紹這兩個方法。

       在下篇文章中,我將會,帶領大家學習ASP.NET Core InProcess 托管。這篇文章,我向大家介紹了ASP.NET Core 中的Main方法。希望能幫到大家。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM