c# - ConfigurationCollection - Unrecognized element 'entry' -
i hope can me figure out doing wrong here. have custom section in web.config:
<invalidcharactorgroup> <entries> <entry name="entry1" oldchar="É" newchar="e"/> <entry name="entry2" oldchar="b" newchar="c"/> </entries> </invalidcharactorgroup> declaration
<sectiongroup name="invalidcharactorgroup"> <section name="entries" type="wstg.config.invalidcharactorsection, wstgecomlibrary, version=1.0.0.0, culture=neutral, publickeytoken=null" allowlocation="true" allowdefinition="everywhere" /> </sectiongroup> it error:
unrecognized element 'entry'. here classes:
public class invalidcharactorsection : configurationsection { [configurationproperty("entries")] [configurationcollection(typeof(invalidentryelementcollection), additemname = "entry")] public invalidentryelementcollection entries { { return ((invalidentryelementcollection)(base["entries"])); } set { base["entries"] = value; } } } public class invalidentryelementcollection : configurationelementcollection { internal const string propertyname = "entry"; public override configurationelementcollectiontype collectiontype { { return configurationelementcollectiontype.basicmapalternate; } } protected override string elementname { { return propertyname; } } protected override bool iselementname(string elementname) { return elementname.equals(propertyname, stringcomparison.invariantcultureignorecase); } public override bool isreadonly() { return false; } protected override configurationelement createnewelement() { return new entry(); } protected override object getelementkey(configurationelement element) { return ((entry)(element)).name; } public entry this[int idx] { { return (entry)baseget(idx); } } } public class entry : configurationelement { [configurationproperty("name", defaultvalue = "", iskey = true, isrequired = true)] public string name { { return (string)base["name"]; } set { base["name"] = value; } } [configurationproperty("oldchar", defaultvalue = "", iskey = false, isrequired = true)] public string oldchar { { return (string)base["oldchar"]; } set { base["oldchar"] = value; } } [configurationproperty("newchar", defaultvalue = "", iskey = false, isrequired = true)] public string newchar { { return (string)base["newchar"]; } set { base["newchar"] = value; } } }
seems you've declared propertyname "entry", different "entry".
update
i tried actual code, had change section group definition in config file one:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configsections> <!--<sectiongroup name="invalidcharactorgroup"> <section name="entries" type="wstg.config.invalidcharactorsection, consoleapplication1, version=1.0.0.0, culture=neutral, publickeytoken=null" allowlocation="true" allowdefinition="everywhere" /> </sectiongroup>--> <section name="invalidcharactorgroup" type="wstg.config.invalidcharactorsection, consoleapplication1"/> </configsections> <invalidcharactorgroup> <entries> <entry name="entry1" oldchar="É" newchar="e"/> <entry name="entry2" oldchar="b" newchar="c"/> </entries> </invalidcharactorgroup> </configuration> change "consoleapplication1" name of binary. should able read configuration this:
invalidcharactorsection section = configurationmanager.getsection("invalidcharactorgroup") invalidcharactorsection; entry entry = section.entries[0];
Comments
Post a Comment