Unrecognized configuration section

I created a custom configuration section as shown below

<configSections> </configSections> <Tabs> <Tab name="Dashboard" visibility="true" /> <Tab name="VirtualMachineRequest" visibility="true" /> <Tab name="SoftwareRequest" visibility="true" /> </Tabs> 

Customizing Section Handler

  namespace EDaaS.Web.Helper { public class CustomConfigurationHandler : ConfigurationSection { [ConfigurationProperty("visibility", DefaultValue = "true", IsRequired = false)] public Boolean Visibility { get { return (Boolean)this["visibility"]; } set { this["visibility"] = value; } } } } 

When throwing application exceptions, throw an Unrecognized configuration table exception. How to resolve this

+6
source share
1 answer

You need to write a configuration handler to parse this custom section. Then register this custom handler in the configuration file:

 <configSections> <section name="mySection" type="MyNamespace.MySection, MyAssembly" /> </configSections> <mySection> <Tabs> <Tab name="one" visibility="true"/> <Tab name="two" visibility="true"/> </Tabs> </mySection> 

Now set the appropriate configuration section:

 public class MySection : ConfigurationSection { [ConfigurationProperty("Tabs", Options = ConfigurationPropertyOptions.IsRequired)] public TabsCollection Tabs { get { return (TabsCollection)this["Tabs"]; } } } [ConfigurationCollection(typeof(TabElement), AddItemName = "Tab")] public class TabsCollection : ConfigurationElementCollection { protected override ConfigurationElement CreateNewElement() { return new TabElement(); } protected override object GetElementKey(ConfigurationElement element) { if (element == null) { throw new ArgumentNullException("element"); } return ((TabElement)element).Name; } } public class TabElement : ConfigurationElement { [ConfigurationProperty("name", IsRequired = true, IsKey = true)] public string Name { get { return (string)base["name"]; } } [ConfigurationProperty("visibility")] public bool Visibility { get { return (bool)base["visibility"]; } } } 

and now you can access the settings:

 var mySection = (MySection)ConfigurationManager.GetSection("mySection"); 
+15
source

All Articles