NET6完整項目實戰系列第3篇:Program.cs 文件解析


最后來看一看 Program.cs 這個文件中有哪些內容。

Program.cs 是整個Web應用程序的入口文件,.NET6 之前有一個入口函數 Main() , NET6中去掉了 ,其中的代碼沒有任何函數定義,

打開就可以開干了,這里的語句就是頂級語句, 代碼非常簡潔,如下:

關於頂級語句可以參考微軟官網的介紹:

https://docs.microsoft.com/zh-cn/dotnet/csharp/fundamentals/program-structure/top-level-statements,

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/proposals/csharp-9.0/top-level-statements,

摘錄如下:

頂級語句在編譯過后會生成 Program 類和 Main() 方法(名稱不是固定的),方法的簽名根據語句的不同而有差異,具體如下:

 

 

下面介紹一下各條語句的作用:

 

第1行, var builder = WebApplication.CreateBuilder(args);   WebApplication 表示整個Web應用程序 ,調用CreateBuilder()方法創建一個

WebApplicationBuilder 對象。

 

第4行,builder.Services.AddRazorPages();  WebApplicationBuilder 對象添加 RazorPages 服務 , 也可以添加其他服務,比如依賴注入、

登錄等。

 

第6行,var app = builder.Build();構造一個 WebApplication 實例。

 

第12~15行,添加一個異常處理中間件,此中間件發生作用的條件是:當前運行環境必須是開發環境 ,如果 Web 應用程序出現異常,

則跳轉到 Error.cshtml 這個頁面,如下圖,微軟已經很貼心的幫我們把異常頁都准備好了。

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
}

 

第17行,app.UseStaticFiles(); 啟用靜態文件中間件,加上這行代碼后, 我們在瀏覽器中才能訪問 wwwroot 目錄下的文件,否則會報錯。

我們先在解決方案的 wwwroot目錄增加一個圖片文件如下:

在瀏覽器中訪問此圖片如下:

去掉 app.UseStaticFiles(); 再訪問是這樣的:

同樣的道理,如果我們在項目中需要把某些文件放在新的目錄中,需要在 Program.cs 中啟用相應的中間件才行,

具體怎么做我們想后續的演示中碰到了再展開。

 

第19行 ,app.UseRouting(); 啟用路由中間件,啟用后在瀏覽器中輸入網址 Web應用才能正確解析。

 

第21行,app.UseAuthorization(); 啟用權限驗證中間件,當我們的網站是基於身份認證的話需要用到,

一般購物網站都需要啟用,如果只是純展示性的比如企業官網等可以去掉。

 

第23行,app.MapRazorPages(); 啟用Razor Pages中間件,如果是MVC應用,則使用 app.UseMvc(); 中間件。

 

第25行,app.Run(); 啟動應用,當我們開始執行WebApp , 瀏覽器就會幫我們打開網站 Index 頁面了,

如果去掉這一行,報錯如下:沒有與此對象關聯的進程。

Web應用程序已經無法運行了。

 


免責聲明!

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



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