.NET 5.0 选项模式绑定appsettings.json数组时元素属性为空如何解决
问题解决方案
核心问题出在Account类的属性访问修饰符配置错误:.NET 配置绑定系统仅支持对公共可写属性进行值绑定,你当前定义的Account类中所有属性都未指定public修饰符,默认是私有访问级别,因此配置系统无法为这些属性赋值,就会出现数组元素数量正确、但所有属性值为null的情况。
修复代码
将Account类的所有属性加上public修饰符即可:
public class Account { public string Name { get; set; } public string Username { get; set; } public string Password { get; set; } public string PostingLocation { get; set; } }
额外排查点(修改后仍有问题可检查)
- 确认配置类属性名和JSON配置的键名完全匹配(.NET配置绑定默认不区分大小写,但是尽量保证一致避免意外)
- 确认
Accounts属性在SomeApiOptions类中是public的可写属性,你当前的写法符合要求 - 确认appsettings.json的语法正确,没有多余的逗号或者格式错误
修改完成后重新运行项目,即可正常读取到Accounts下的所有属性值。
内容的提问来源于stack exchange,提问作者Bandito
相关产品推荐
相关产品推荐

