You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历app.config获取US、UK配置节的键值对数据?

解决自定义配置节的键值对读取问题

首先得提一下你的app.config里有几处语法小问题——部分value属性的引号没闭合,比如US节里的baseURI、UK节里的UserName和Password,这些得先修正,不然读取的时候会抛出配置解析异常。修正后的这部分配置应该是这样:

<US>
  <add key="UserName" value="test" />
  <add key="Password" value="test" />
  <add key="baseURI" value="http://test.com" />
  <add key="ClientSettingsProvider.ServiceUri" value="" />
</US>
<UK>
  <add key="UserName" value="test1" />
  <add key="Password" value="test1" />
  <add key="baseURI" value="http://test1.com" />
  <add key="ClientSettingsProvider.ServiceUri" value="" />
</UK>

接下来,因为你用的是System.Configuration.NameValueSectionHandler来定义这些节,所以可以直接用ConfigurationManager来读取这些节的键值对,代码示例如下(C#):

首先确保你的项目引用了System.Configuration程序集,然后写代码:

using System.Configuration;
using System.Collections.Specialized;

// 读取US配置节的键值对集合
NameValueCollection usConfig = (NameValueCollection)ConfigurationManager.GetSection("US");
// 读取UK配置节的键值对集合
NameValueCollection ukConfig = (NameValueCollection)ConfigurationManager.GetSection("UK");

// 输出US节的内容
Console.WriteLine("Section : US");
Console.WriteLine($"Username: {usConfig["UserName"]}");
Console.WriteLine($"Password: {usConfig["Password"]}");
Console.WriteLine($"baseURI: {usConfig["baseURI"]}");

// 输出UK节的内容
Console.WriteLine("\nSection : UK");
Console.WriteLine($"Username: {ukConfig["UserName"]}");
Console.WriteLine($"Password: {ukConfig["Password"]}");
Console.WriteLine($"baseURI: {ukConfig["baseURI"]}");

运行这段代码后,输出的结果就和你期望的完全一致了:

Section : US
Username: test
Password: test
baseURI: http://test.com

Section : UK
Username: test1
Password: test1
baseURI: http://test1.com

原理很简单:ConfigurationManager.GetSection方法会根据你指定的节名称,返回对应的NameValueCollection对象,你只需要通过键名就能直接拿到对应的值啦。

内容的提问来源于stack exchange,提问作者josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:01:08