I have a base class with an abstract property:
public abstract int ID {get;set;}
now, I have a subclass, which is XmlSerialized. So, it has:
[XmlElement("something")] public override int ID { get { //... } set { //... } }
I cannot move the XmlElement attribute to baseclass, since every subclass will have a different xml elementname.
Now, when I deserialize this class I get the following error:
Member 'Subclass.ID' hides inherited member 'BaseClass.ID', but has different custom attributes.
What can I do?
Serialization and deserialization of derived types works when the overridden properties have [XmlElement]
and [XmlAttribute]
attributes, by adding an [XmlIgnore]
attribute.
The base class can be made abstract so that it can never be instantiated and therefore serialized or deserialized.
[Serializable] public abstract class Base { [XmlIgnore] public abstract Int32 ID { get; set; } }
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