appconfig.json文件创建与Servers配置节点读取实现方法
配置结构校验结论
- 逻辑结构设计合规:以
Servers作为数组节点存储多台服务器信息,每个服务器条目挂载Name、Type属性的设计完全满足配置分层、扩展的要求,没有结构问题。 - 语法层面存在错误:你给出的片段不符合JSON配置的语法规范,根节点缺少对象包裹的大括号,无法被配置解析器正常识别。完整合法的配置内容如下:
{ "Servers": [ { "Name": ".", "Type": "A" }, { "Name": "Fred", "Type": "B" } ] }
配置读取实现方法
首先提前定义和配置结构匹配的实体类:
public class Server { public string Name { get; set; } public string Type { get; set; } }
推荐方式:强类型直接绑定
不需要手动遍历节点,直接用配置绑定能力一次性拿到完整列表,代码最简洁,出错概率最低:
// 需确保项目已安装 Microsoft.Extensions.Configuration.Binder 包 List<Server> Servers = Configuration.GetSection("Servers").Get<List<Server>>();
手动遍历节点的修正写法
如果你需要逐节点处理逻辑,可以修正你之前写的遍历逻辑,GetValue方法第一个泛型参数指定返回值类型,入参传入节点键名即可:
List<Server> Servers = new List<Server>(); var serverNodes = Configuration.GetSection("Servers").GetChildren(); foreach (var node in serverNodes) { Server server = new Server() { Name = node.GetValue<string>("Name"), Type = node.GetValue<string>("Type") }; Servers.Add(server); }
注意:如果读取时返回空值,先检查配置文件的属性是否设置为「如果较新则复制」到输出目录,避免程序运行时找不到配置文件。
内容的提问来源于stack exchange,提问作者tractor boy
相关产品推荐
相关产品推荐

