在ASP.NET Core / .NET 8中设置期间访问设置
ASP.NET Core是由Microsoft推出的跨平台开放源代码Web架构,允许开发人员高效地构建现代Web应用和云原生应用程序。 随着.NET的最新版本发布,ASP.NET Core继续提供轻量级、安全和灵活的平台,用于开发可在Windows、Linux和macOS上运行的Web应用程序。
在本文中,我们将更加深入地了解如何在 在ASP.NET Core的设置过程中访问配置设置 ,跟随Tim Corey的十分钟培训视频。 Tim演示了在完全配置依赖注入之前,开发人员如何在program.cs中提取配置信息,这是创建灵活且可维护的Web应用程序的重要技术。
为什么早期访问配置很重要
Tim Corey首先强调了ASP.NET Core中应用程序设置的重要性。 据Tim所述,appsettings.json是一个"存储配置的好地方",因为它允许开发人员在不重新编译或重新部署应用程序的情况下更改值。
在Web开发中,通常依赖于配置为服务设置,比如为API设置URL或调整特定环境的参数。 通常,在.NET Core Web应用程序中,开发人员通过依赖注入访问配置:
@inject IConfiguration config然而,Tim指出有时在设置过程中需要访问这些配置值,例如在program.cs中配置HTTP客户端或其他服务时。 这样做可以确保您的应用程序在跨越开发、预演或生产等不同环境时保持灵活和适应性。
设置一个最小Blazor应用
为了演示,Tim 创建了一个简单的Blazor应用,在program.cs中完全专注于关闭交互式。 他强调ASP.NET Core的架构允许您将配置与代码分开,使得管理Web应用和云原生项目更加容易。
这种方法也符合.NET平台的跨平台性质,因为相同的配置逻辑在Windows、Linux和macOS上无需修改即可正常工作。
使用应用设置配置一个HTTP客户端
Tim带我们进入注册HTTP客户端的program.cs场景:
builder.Services.AddHttpClient("LocalAPI", client =>
{
client.BaseAddress = new Uri("https://localhost:7654");
});虽然这样可行,Tim解释说硬编码URL并不理想。 如果API端点更改,开发人员必须更新代码并提交部署的拉取请求。 相反,他建议将该值存储在appsettings.json中:
{
"LocalAPI": "https://localapi.fromconfig"
}这确保框架动态地拉取配置,从而避免重新编译和减少部署过程中的错误。 这也符合安全和可维护Web应用程序的最佳实践。
在Program.cs中访问配置
Tim演示了如何在依赖注入之前提取配置信息:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI");Tim强调的关键点有:
builder.Configuration在builder.Build()之前可用。
值可以来自appsettings.json、环境变量、用户秘密甚至Azure Key Vault。
- 这允许您动态配置服务、日志或其他Web架构组件。
Tim设置了一个断点以验证LocalAPI URL是否被正确检索。 他指出这种方法适用于所有支持的平台,使其成为跨平台开发的理想方案。
处理缺少的配置
Tim解决了配置键可能缺失或为空的场景。 他显示了可以使用GetValue提供默认值:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");这确保即使配置未设置,您的应用程序也随时可以运行,从而改善了错误处理和开发人员的生产力。 这也降低了在云部署或不同平台上运行时发生运行时问题的可能性。
早期配置访问的好处
Tim列出了在设置期间提取配置的几个优点:
动态设置:像HttpClient这样的服务可以使用特定环境的端点。
避免重新编译:更改URL或其他设置不再需要代码更改。
灵活的日志和服务:使用配置值配置记录器或其他Web框架服务。
- 支持多种来源:配置可以来自appsettings.json、环境变量、用户秘密或云密钥库。
他强调这种方法保持应用程序轻量且易于维护,同时充分利用了ASP.NET Core框架和.NET平台。
运行和测试应用程序(6:03–7:36)
Tim演示了如何清理代码并运行应用程序。他展示了如何从配置中获取LocalAPI URL,或者退回到默认值:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");这个灵活的设置允许开发人员继续构建Web应用程序,而无需担心硬编码的URL或因小改动而反复发起的请求。 这也确保了在Linux、Windows或macOS上的跨平台部署是无缝的。
结论
Tim Corey总结强调了在ASP.NET Core / .NET 8的设置过程中访问配置的简便性和效率。通过使用:
builder.Configuration.GetValue()开发人员可以:
动态配置服务
避免在框架中硬编码值
支持多种环境和平台
- 提高开发者的生产力和错误处理能力
这项技术对于创建安全、可维护和云准备的Web应用程序是必不可少的。 Tim的实际演示突出了即使是轻量级的、跨平台的ASP.NET Core应用程序也可以是健壮的、灵活的,并为现代Web开发做好准备。
Tim Corey的视频是开发人员想要掌握ASP.NET Core中配置管理的必看之作。 通过遵循他的步骤,您可以确保您的应用程序是灵活的、可维护的,并为跨平台部署、云环境和现代Web架构做好准备。

