Here is my object
[Serializable()]
public class PersistentObject
{
public virtual int ID {
get { return id; }
protected set { id = value;}
}
...
}
When I try to serialize this to xml, I get an error "The Property or indexer PersistentObject.ID cannot be used in this context because the set accessor is inaccessible" . If the setter doesn't exist, it works fine. I want to keep this ID as serialized without a hacktastic solution that involves an of [XmlIgnore()] on ID. I would prefer if I could add [XmlIgnore()] on just the setter, but the compiler complains. Anybody have a good solution around this?
Unfortunately, no. XmlSerializer
has some things that are... irritating. This is one of them. Options:
DataContractSerializer
(which supports protected
etc, but doesn't offer full xml control)[XmlIgnore]
- nothing wrong with itIXmlSerializable
- hard work and very easy to get wrongprotected
method to set the valueXmlSerializer
constructor that lets you specify everything at runtime; lots of work/maintenance, and you need to manually cache the serializer (otherwise it creates lots of dynamic assemblies)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