I am serializing a class and I get the following exception:
You must implement a default accessor on System.Configuration.SettingsPropertyCollection because it inherits from ICollection.
when the following line is executed:
XmlSerializer xs = new XmlSerializer(typeof(CustomConfiguration));
Any help?
public class CustomConfiguration : ConfigurationObjectBase
{
public CustomConfiguration () { //DO NOTHING. }
[User]
public uint Version
{ get { return ((uint)(this["Version"])); }
set { this["Version"] = value; }
}
}
ConfigurationObjectBase is derived from System.configuration.ApplicationSettingsBase.
"default accessor" is the special property that returns an object of the collection based on its index. for example:
[Serializable()]
public class IntList : ICollection {
// Default Accessor Implementation
public int this[int index] {
get {
return 0;
}
set { /* Do Nothing */ }
}
}
Therefore unavailable to implement that in existing third-party class. Using xml serializing for ApplicationSettings is very bad idea, use Save(), Reload() and Reset() methods, or use your own not derived from ApplicationSettingsBase CustomConfiguration classes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With