Design your schema in app.config Write proper class matched with your schema using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; namespace ConsoleApplication1 { internal class ProcessJobInfo:ConfigurationElement { [ConfigurationProperty("name", IsKey=true,IsRequired=true)] public string Name { get { return (string)base["name"]; } } [ConfigurationProperty("fileName")] public string FileName { get { return (string)base["fileName"]; } } [ConfigurationProperty("arguments")] public string Arguments { get { return (string)base["arguments"]; } } public override string ToString() { return "Name=" + Name + System.Environment.NewLine + "FileName=" + FileName + System.Environment.NewLine + "Arguments=" + Arguments + System.Environment.NewLine; } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; namespace ConsoleApplication1 { public class ProcessJobCollection:ConfigurationElementCollection { protected override ConfigurationElement CreateNewElement(){ return new ProcessJobInfo(); } protected override object GetElementKey(ConfigurationElement element){ return ((ProcessJobInfo)element).Name; } protected override string ElementName{ get{ return "add"; } } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; namespace ConsoleApplication1 { public class ProcessJobSection:ConfigurationSection { [ConfigurationProperty("processJobs")] public ProcessJobCollection ProcessJobs{ get{ return (ProcessJobCollection)base["processJobs"]; } } } } Use your configuration using System; using System.Configuration; using System.Collections; using ConsoleApplication1.ProviderSample; namespace ConsoleApplication1 { class Program { public static ProcessJobSection Instance = (ProcessJobSection)ConfigurationManager.GetSection("processJobSection"); static void Main(string[] args) { while (Console.ReadLine() != "exit") { ProcessJobCollection jobs = Instance.ProcessJobs; IEnumerator emulator = jobs.GetEnumerator(); while (emulator.MoveNext()) { ProcessJobInfo job =(ProcessJobInfo) emulator.Current; Console.WriteLine(job.ToString()); } } } } }