从App.config C#以编程方式获取节名称

时间:2015-07-16 14:43:20

标签: c# configuration config app-config

有没有办法以编程方式通过循环来获取节名,而不是自己对名称进行硬编码?

例如:

<configuration>
  <configSections>
    <section name="Test1"  type="System.Configuration.NameValueSectionHandler"/>
    <section name="Test2" type="System.Configuration.NameValueSectionHandler"/>
  </configSections>

硬编码:

var section = ConfigurationManager.GetSection("Test1") as NameValueCollection;
var section = ConfigurationManager.GetSection("Test2") as NameValueCollection;

我不想在代码中对Test1和Test2部分名称进行硬编码。

1 个答案:

答案 0 :(得分:1)

你可以得到这样的部门组名称:

    static void Main(string[] args)
    {
        string configPath = @"..\..\App.config";
        var map = new ExeConfigurationFileMap();
        map.ExeConfigFilename = configPath;
        var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
        for (int i = 0; i < config.SectionGroups.Count; i++)
        {
            Console.WriteLine(config.SectionGroups[i].SectionGroupName);
        }
    }