How to read configSections

app-config, c#

Solution

Use the `Configuration.Sections`-property to get the names of the declared configuration sections. Then, optionally if you need, use `ConfigurationManager.GetSection()` to retrieve an individual section.

Note that you may want to use the value of the `SectionInformation.IsDeclared` or `ConfigSource` of the respective `ConfigurationSection.SectionInformation` to find out of the section was actually declared in your configuration file, or is inherited from `machine.config` or otherwise.

Example:

    var cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    var localSections = cfg.Sections.Cast<ConfigurationSection>()
       .Where(s => s.SectionInformation.IsDeclared);

Finally, note that this approach will only get you configuration sections. It will not return configuration sections, which are itself inside a `<sectionGroup>`. For them, you would first need iterate over `Configuration.SectionGroups`, which has it's own `Sections`-property that contains the per section group sections. It can also contain nested section groups, again accessible via the `SectionGroups` property of each `ConfigurationSectionGroup` instance.

Problem

I've set up some custom config sections in my App.Config, such that I now have a configSection that looks like this. ``` <configSections> <section name="Section1" type="ConfigSections.MySection, MyNamespace"/> <section name="Section2" type="ConfigSections.MySection, MyNamespace"/> <section name="Section3" type="ConfigSections.MySection, MyNamespace"/> </configSections> ``` What I want to do is to read this section in code in order to find out at runtime what sections I have. I have tried: ``` var mySections = ConfigurationManager.GetSection("configSections"); ``` but this returns null. I'm sure I'm missing something simple, but I cannot find anything about how to do this. Thanks

Original source