C# 如何获取 <configSections> 中的键数(计数)

C# How can I get the number (count) of keys in <configSections>

我试图在我的 app.Config 中获取配置部分的 数量 以便为此初始化一个 int var # 并循环读取项目运行 时间动态。

<configSections>
  <section name="Section1" type="ConfigSections.MySection, MyNamespace"/>
  <section name="Section2" type="ConfigSections.MySection, MyNamespace"/>
  <section name="Section3" type="ConfigSections.MySection, MyNamespace"/>
</configSections>

在此示例中,计数 将为 3。

我已经尝试使用 ConfigurationSectionGroup 和其他 classes 但他们的 .Count 属性 没有 return 正确的数字(他们似乎继承了额外的 sections/groups 来自其他地方)或 class 根本没有计数 属性.

我可能会浏览该部分并计算每个项目以获得 # 但我想知道是否有直接方法或 属性 立即获得此 #。

谢谢。

使用XmlDocumentclass。

但首先在您的项目中添加 System.Xml.XmlDocument,使用 NuGet 包。

XML 文件

<?xml version="1.0" encoding="UTF-8" ?>
<configSections>
  <section name="Section1" type="ConfigSections.MySection, MyNamespace"/>
  <section name="Section2" type="ConfigSections.MySection, MyNamespace"/>
  <section name="Section3" type="ConfigSections.MySection, MyNamespace"/>
  <other name="Other" type="ConfigSections.Other, MyNamespace"/>
</configSections>

代码示例

XmlDocument xml = new XmlDocument();
xml.Load(".../test.xml"); //path to xml file

XmlNodeList xnList = xml.SelectNodes("/configSections/section");
Console.WriteLine(xnList.Count);
foreach (XmlNode xn in xnList)
{
    string value = xn.Attributes.GetNamedItem("name").Value;
    Console.WriteLine(value);
}

结果

3
Section1
Section2
Section3