中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET Core 中的Main方法詳解

發布時間:2020-10-12 06:38:08 來源:腳本之家 閱讀:196 作者:cool2feel 欄目:編程語言

在 ASP.NET Core 項目中,我們有一個名為Program.cs的文件。在這個文件中,我們有一個public static void Main()方法 。

public class Program
{
  public static void Main(string[] args)
  {
    CreateWebHostBuilder(args).Build().Run();
  }

  public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
      .UseStartup<Startup>();
}

如果您對傳統的.NET Framework 有任何使用經驗,則知道控制臺應用程序具有 Main()方法,它是該控制臺程序的入口。

但今天,我們正在創建一個 ASP.NET Core Web 應用程序而不是控制臺應用程序。因此,我們想到的一個顯而易見的問題是。 為什么我們也會有一個Main()方法?

所以這個知識點,要記住的。ASP.NET Core 應用程序最初作為控制臺應用程序啟動,而Program.cs文件中的Main()方法就是入口。

因此,當運行時執行我們的應用程序時,它會查找此Main()方法以及執行配置開始的地方。

這個Main()方法配置 asp.net Core 并啟動它,此時,它成為一個 asp.net Core Web 應用程序。因此,如果你跟蹤一下Main()方法,它會調用 CreateWebHostBuilder()方法傳遞命令行參數。

然后你就可以看到,CreateWebHostBuilder()方法返回一個實現 IWebHostBuilder 的對象。 在此對象上,調用Build()方法,會將我們的 ASP.NET Core 應用程序生成并且托管到服務器上。 在服務器上的程序調用Run() 方法,該方法運行后Web 應用程序并開始偵聽傳入的 HTTP 請求。 CreateWebHostBuilder()方法調用靜態類WebHost中的靜態方法CreateDefaultBuilder()。 CreateDefaultBuilder()方法會在服務器上創建一個已經預設置好的默認值。 CreateDefaultBuilder()方法執行多項操作來創建服務器.

我們在后面的視頻中詳細討論CreateDefaultBuilder()中的所有方法。

而現在你只需要了解CreateDefaultBuilder()方法是用于在服務器上創建程序配置的默認值而存在。 它作為設置服務器的一部分,還使用了IWebHostBuilder接口中的UseStartup()的擴展方法來配置Startup類。 如果您不熟悉擴展方法的概念, 那么你該去補課了。

按照微軟的規則,ASP.NET Core 中的啟動類名為Startup。 這個類有 2 種方法。

public class Startup
{
  public void ConfigureServices(IServiceCollection services)
  { }

  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  {
    if (env.IsDevelopment())
    {
      app.UseDeveloperExceptionPage();
    }

    app.Run(async (context) =>
    {
      await context.Response.WriteAsync("Hello World!");
    });
  }
}

C#

Startup 類雖然只有兩個方法,但是這兩個方法做了非常重要的事情:

ConfigureServices()方法配置應用程序所需的服務

Configure()方法配置應用程序的請求處理管道

我們理解這兩種方法的作用是非常重要。

在后面的文章中,會大量使用這兩種方法。到時候需要大家多次加深印象。

感謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

廊坊市| 长垣县| 安多县| 达尔| 邳州市| 奎屯市| 郑州市| 丘北县| 镇巴县| 锡林浩特市| 乾安县| 霍城县| 随州市| 海原县| 临颍县| 昌都县| 尚志市| 湛江市| 阿克苏市| 渑池县| 刚察县| 绍兴县| 海阳市| 平昌县| 乐山市| 普洱| 南京市| 奉贤区| 通河县| 大化| 利川市| 汉川市| 济宁市| 永仁县| 寿光市| 枣阳市| 宁晋县| 普兰县| 乐平市| 清水河县| 西乡县|