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
Use the
Configuration.Sections-property to get the names of the declared configuration sections. Then, optionally if you need, useConfigurationManager.GetSection()to retrieve an individual section.Note that you may want to use the value of the
SectionInformation.IsDeclaredorConfigSourceof the respectiveConfigurationSection.SectionInformationto find out of the section was actually declared in your configuration file, or is inherited frommachine.configor otherwise.Example:
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 overConfiguration.SectionGroups, which has it’s ownSections-property that contains the per section group sections. It can also contain nested section groups, again accessible via theSectionGroupsproperty of eachConfigurationSectionGroupinstance.