Reading keyvalue pairs into dictionary from app.config configSection
app-config, c#, dictionary, wpf, xml
Solution
using `ConfigurationManager` class you can get whole section from `app.config` file as `Hashtable` which you can convert to `Dictionary` if you want to:
var section = (ConfigurationManager.GetSection("DeviceSettings/MajorCommands") as System.Collections.Hashtable)
.Cast<System.Collections.DictionaryEntry>()
.ToDictionary(n=>n.Key.ToString(), n=>n.Value.ToString());
you'll need to add reference to `System.Configuration` assembly
Problem
I currently have an app.config in an application of mine set up like so: ``` <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="DeviceSettings"> <section name="MajorCommands" type="System.Configuration.DictionarySectionHandler"/> </sectionGroup> </configSections> <appSettings> <add key="ComPort" value="com3"/> <add key="Baud" value="9600"/> <add key="Parity" value="None"/> <add key="DataBits" value="8"/> <add key="StopBits" value="1"/> <add key="Ping" value="*IDN?"/> <add key="FailOut" value="1"/> </appSettings> <DeviceSettings> <MajorCommands> <add key="Standby" value="STBY"/> <add key="Operate" value="OPER"/> <add key="Remote" value="REMOTE"/> <add key="Local" value="LOCAL"/> <add key="Reset" value="*RST" /> </MajorCommands> </DeviceSettings> </configuration> ``` My current objective is to foreach or simply read all values from MajorCommands into a `Dictionary<string, string>` formatted as `Dictionary<key, value>`. I've tried several different approaches using System.Configuration but none seem to work and I haven't been able to find any details out there for my exact question. Is there any proper way to do this?