如何从 ASP.NET Core 中的 JSON 文件读取 AppSettings 值?
Jan 23, 2025 am 04:35 AM在 ASP.NET Core 中从 JSON 访问配置数据:实用指南
外部配置源,例如 JSON 文件,在 Web 开发中经常使用。 与旧版本不同,ASP.NET Core 提供了访问此数据的强大方法。本指南演示如何从 JSON 文件检索 AppSettings 值。
设置配置文件
首先,使用您的键值对创建一个 Config.json
文件(例如,在 appsettings
文件夹中):
{ "AppSettings": { "token": "1234" } }
登录后复制
此文件存储您将在代码中访问的配置数据。
将 JSON 配置集成到您的应用程序中
在应用程序的 Startup.cs
文件中,配置 ConfigurationBuilder
:
public class Startup { public IConfiguration Configuration { get; } public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings/Config.json", optional: true, reloadOnChange: true); Configuration = builder.Build(); } // ... rest of your Startup class }
登录后复制
通过依赖注入访问控制器中的配置
要在控制器中使用这些设置,请注入 IConfiguration
对象:
public class HomeController : Controller { private readonly IConfiguration _configuration; public HomeController(IConfiguration configuration) { _configuration = configuration; } public IActionResult Index() { var token = _configuration["AppSettings:token"]; return View(token); } }
登录后复制
使用键路径“AppSettings:token”检索值非常简单。
增强方法:选项模式(推荐用于 ASP.NET Core 2.0)
对于 ASP.NET Core 2.0 及更高版本,选项模式提供了一种更加结构化的方法。
定义一个代表您的配置的类:
public class AppSettings { public string Token { get; set; } }
登录后复制
在Startup.cs
中,配置并注入IOptions<AppSettings>
对象:
services.AddOptions<AppSettings>() .Configure<IConfiguration>((settings, configuration) => { configuration.GetSection("AppSettings").Bind(settings); });
登录后复制
现在,在你的控制器中:
public class HomeController : Controller { private readonly IOptions<AppSettings> _appSettings; public HomeController(IOptions<AppSettings> appSettings) { _appSettings = appSettings; } public IActionResult Index() { var token = _appSettings.Value.Token; return View(token); } }
登录后复制
与之前的方法相比,此方法提供了类型安全性并提高了可维护性。 这是较新的 ASP.NET Core 项目的首选方法。
以上是如何从 ASP.NET Core 中的 JSON 文件读取 AppSettings 值?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)