IRONSOFTWAREHOME

在 ASP.NET Core / .NET 8 中設置過程中的設置存取

在ASP.NET Core / .NET 8中設置期間存取設定

Tim Corey

8分02秒

ASP.NET Core 是由微軟推出的跨平台、開源的網頁框架,允許開發者高效地建立現代的網頁應用程式和雲端原生應用程式。 隨著 .NET 的最新版本,ASP.NET Core 繼續提供輕量、安全和靈活的平台,以開發可以在 Windows、Linux 和 macOS 上運行的網頁應用程式。

在本文中,我們將深入探討如何在ASP.NET Core 設置期間存取配置設定,此步驟參照了 Tim Corey 的10分鐘訓練影片。 Tim 展示了開發者如何在 program.cs 中於相依性注入尚未完全配置之前提取配置值,這是建立靈活和易於維護的網頁應用程式的重要技巧。

為什麼早期存取配置很重要

Tim Corey 首先強調了 ASP.NET Core 中應用程式設定的重要性。 根據 Tim 的說法,appsettings.json 是"儲存配置的一個很好的地方",因為它允許開發者更改值而不需要重新編譯或重新部署應用程式。

在網頁開發中,依賴服務配置是很常見的,比如設置API的URL或者調整環境特定的參數。 通常,在 .NET Core 網頁應用中,開發者透過相依性注入來存取配置:

@inject IConfiguration config
Text

然而,Tim 指出,有時需要在設置期間存取這些配置值,例如在 program.cs 中配置 HTTP 客户端或其他服務時。 這樣可以確保您的應用程式在移動到不同的環境如開發、預發佈或生成時仍然保持靈活和適應性。

設置最小 Blazor 應用程式

為了演示,Tim 建立了簡單的 Blazor 應用程式,關閉互動性以完全專注於 program.cs。 他強調 ASP.NET Core 的架構允許您將配置與程式碼分開,使管理網頁應用程式和雲端原生專案變得更容易。

這種方法也符合 .NET 平台的跨平台特性,因為相同的配置邏輯可以在 Windows、Linux 和 macOS 上運行而不需修改。

使用應用程式設定配置 HTTP 客戶端

Tim 為我們介紹了一個在 program.cs 中註冊 HTTP 客戶端的情境:

builder.Services.AddHttpClient("LocalAPI", client =>
{
    client.BaseAddress = new Uri("https://localhost:7654");
});
Text

雖然這能運作,但 Tim 解釋硬編碼網址不是理想的做法。 如果API端點發生變更,開發者必須更新程式碼並建立 pull request 以便部署。 因此,他建議將該值儲存在 appsettings.json 中:

{
  "LocalAPI": "https://localapi.fromconfig"
}
Text

這確保框架動態調用配置,避免了重新編譯並減少了部署過程中的錯誤。 這也與最佳實踐對齊,確保網頁應用安全且易於維護。

在 Program.cs 中存取配置

Tim 展示了如何在相依性注入前提取配置值:

var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI");
Text

Tim 強調的關鍵點:

  • builder.Configuration 可以在 builder.Build() 之前使用。

  • 值可以來自 appsettings.json、環境變數、使用者密碼或甚至是 Azure Key Vault。

  • 這可讓您動態配置服務、記錄或其他網路框架元件。

Tim 設置了一個中斷點來驗證是否正確提取到 LocalAPI URL。 他指出,這種方法可在所有支持平台上運作,對於跨平台開發來說是理想的選擇。

處理缺少的配置

Tim 探討了一些配置鍵可能缺失或為 null 的情形。 他展示了可以使用 GetValue 提供預設值:

var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");
Text

這保證了即使配置未設置,您的應用程式仍然可以正常運行,改善了錯誤處理以及開發者的生產效率。 這也降低了雲端部署或不同平台上運行時問題的可能性。

早期存取配置的好處

Tim 列舉了在設置期間提取配置的幾個優勢:

  1. 動態設置:HttpClient 等服務可以使用環境特定的端點。

  2. 避免重新編譯:更改 URL 或其他設置不再需要更改程式碼。

  3. 彈性記錄和服務:使用配置值來設置記錄器或其他網頁框架服務。

  4. 支持多來源:配置可以來自 appsettings.json、環境變數、使用者密碼或雲端密鑰庫。

他強調此方法使應用程式保持輕量且易於維護,並充分利用 ASP.NET Core 框架和 .NET 平台。

運行和測試應用程式 (6:03–7:36)

Tim 演示了清理程式碼並運行應用程式。他展示了 LocalAPI URL 是從配置中提取還是退回到預設值:

var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");
Text

這個靈活的設置允許開發者繼續構建網頁應用而不必擔心硬編碼 URL 或針對小變更反覆拉取請求。 這也確保了在 Linux、Windows 或 macOS 上的跨平台部署平穩無礙。

結論

Tim Corey 總結指出在 ASP.NET Core / .NET 8 的設置期間存取配置的簡單性和效率。通過使用:

builder.Configuration.GetValue<t>()
Text

開發者可以:

  • 動態配置服務

  • 避免在框架中硬編碼值

  • 支持多個環境和平台

  • 改善開發者的生產效率和錯誤處理

這項技術對於建立安全、可維護和雲就緒的網頁應用程式至關重要。 Tim 的實用演示強調,即便是輕量、跨平台的 ASP.NET Core 應用程式也可以是穩健、靈活並且適合現代網頁開發的準備。

Tim Corey 的影片是開發者掌握 ASP.NET Core 配置管理必看的影片。 遵循他的步驟,您可以確保您的應用程式是靈活、易於維護,並準備好進行跨平台部署、雲端環境以及現代網頁架構。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立