Here is my object
[Serializable()]
public class PersistentObject
{
public virtual int ID {
get { return id; }
protec
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)Even though it doesn't directly answer your question, note that you can serialize properties with an internal
setter. To do that, you need to pre-generate the XML serialization assembly with Sgen.exe, and declare that assembly as "friend" using the InternalsVisibleTo
attribute :
[assembly:InternalsVisibleTo("MyAssembly.XmlSerializers")]