您好,登錄后才能下訂單哦!
在 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()方法配置應用程序的請求處理管道
我們理解這兩種方法的作用是非常重要。
在后面的文章中,會大量使用這兩種方法。到時候需要大家多次加深印象。
感謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。