在.NET Core项目中如何通过IConfiguration读取自定义JSON文件内容
.NET读取creds.json配置值的方法
假设你的creds.json为常规配置结构,示例如下:
{ "UserName": "你的用户名", "Password": "你的密码" }
以下是两种常用的读取方案:
方法1:直接通过注入的IConfiguration读取
在需要使用配置的类中,通过构造函数注入IConfiguration实例,直接通过键名读取:
public class DemoService { private readonly IConfiguration _config; // 构造函数注入IConfiguration public DemoService(IConfiguration config) { _config = config; } public void GetCreds() { // 方式1:索引器读取 string userName = _config["UserName"]; string password = _config["Password"]; // 方式2:泛型GetValue方法读取,支持设置默认值 string userName2 = _config.GetValue<string>("UserName"); // 如果配置是嵌套结构,比如存放在Creds节点下,用冒号分隔层级 // string userName = _config["Creds:UserName"]; } }
方法2:绑定到强类型配置类(更推荐,类型安全)
- 先定义和配置结构对应的配置类
public class CredsConfig { public string UserName { get; set; } public string Password { get; set; } }
- 在服务注册阶段绑定配置
// Program.cs 或 Startup.cs 的ConfigureServices方法中添加 // 如果是根级配置直接绑定 builder.Services.Configure<CredsConfig>(builder.Configuration); // 如果配置是嵌套在Creds节点下,绑定对应节点即可 // builder.Services.Configure<CredsConfig>(builder.Configuration.GetSection("Creds"));
- 在业务类中注入IOptions
使用
public class DemoService { private readonly CredsConfig _creds; public DemoService(IOptions<CredsConfig> credsOptions) { _creds = credsOptions.Value; } public void GetCreds() { string userName = _creds.UserName; string password = _creds.Password; } }
注意:请确保creds.json文件的「复制到输出目录」属性设置为
如果较新则复制,避免程序运行时找不到配置文件导致读取为空。
内容的提问来源于stack exchange,提问作者abhishek
相关产品推荐
相关产品推荐

