《从零开始学ASP.NET CORE MVC》:ASP.NET Core 中的 Main方法(5)
本文出自《從零開始學ASP.NET CORE MVC》
推薦文章:ASP.NET Core Web 項目文件
ASP.NET Core 中的 Main方法
一個開始專心寫字的人
在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>();
}
如果您對傳統(tǒng)的.NET Framework有任何使用經驗,則知道控制臺應用程序具有Main()方法,它是該控制臺程序的入口。
但今天,我們正在創(chuàng)建一個ASP.NET Core Web應用程序而不是控制臺應用程序。因此,我們想到的一個顯而易見的問題是。
為什么我們也會有一個Main()方法?
所以這個知識點,要記住的。ASP.NET Core 應用程序最初作為控制臺應用程序啟動,而Program.cs文件中的Main()方法就是入口。
因此,當運行時執(zhí)行我們的應用程序時,它會查找此Main()方法以及執(zhí)行配置開始的地方。
這個Main()方法配置asp.net Core 并啟動它,此時,它成為一個asp.net Core Web應用程序。因此,如果你跟蹤一下Main()方法,它會調用CreateWebHostBuilder()方法傳遞命令行參數。
然后你就可以看到,CreateWebHostBuilder()方法返回一個實現IWebHostBuilder的對象。
在此對象上,調用Build()方法,會將我們的ASP.NET Core 應用程序生成并且托管到服務器上。
在服務器上的程序調用Run()?方法,該方法運行后Web應用程序并開始偵聽傳入的HTTP請求。
CreateWebHostBuilder()方法調用靜態(tài)類WebHost中的靜態(tài)方法CreateDefaultBuilder()。
CreateDefaultBuilder()方法會在服務器上創(chuàng)建一個已經預設置好的默認值。
CreateDefaultBuilder()方法執(zhí)行多項操作來創(chuàng)建服務器.
我們在后面的視頻中詳細討論CreateDefaultBuilder()中的所有方法。
而現在你只需要了解CreateDefaultBuilder()方法是用于在服務器上創(chuàng)建程序配置的默認值而存在。
它作為設置服務器的一部分,還使用了IWebHostBuilder接口中的UseStartup()的擴展方法來配置Startup類。
如果您不熟悉擴展方法的概念, 那么你該去補課了。
按照微軟的規(guī)則,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!");
});
}
}
Startup類雖然只有兩個方法,但是這兩個方法做了非常重要的事情:
- ConfigureServices()方法配置應用程序所需的服務 
- Configure()方法配置應用程序的請求處理管道 
我們理解這兩種方法的作用是非常重要。
在后面的課程中,我們會大量使用這兩種方法。到時候需要大家多次加深印象。
硬廣專區(qū)
如果您覺得我的文章質量還不錯,歡迎打賞,也可以訂閱我的視頻哦
未得到授權不得擅自轉載本文內容,52abp.com保留版權
文字版目錄:?https://www.52abp.com/Wiki/mvc/latest/1.Intro?
代碼托管地址:https://gitee.com/aiabpedu
知乎專欄:https://zhuanlan.zhihu.com/52abp
交流QQ群:952387474《微軟MVP帶你學ASP.NET?CORE》
【收費】騰訊課堂:?https://ke.qq.com/course/392589?tuin=2522cdf3?
【免費】youtube視頻專區(qū):http://t.cn/Ei0F2EB?
【免費】B站:?https://space.bilibili.com/2954671?
免費的更新慢,收費的更新快,僅此而已。就這樣。?
「好看」的人都【在看】↓↓↓
總結
以上是生活随笔為你收集整理的《从零开始学ASP.NET CORE MVC》:ASP.NET Core 中的 Main方法(5)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 扒一扒.NET Core的环境配置提供程
- 下一篇: .net core webapi 前后端
