XmlSerializer
is going to ignore Version
because it doesn't have a set
, so there is no way it can attempt to ever deserialize it. Perhaps instead:
[XmlAttribute(AttributeName = "version")]
public string Version {get;set;}
public Request() { Version = "1.0"; }
which will have the same effect overall (although will require an extra string
field per-instance - although all of the "1.0"
values will be the same actual string
instance, via interning), but will allow you to capture properly the version of data you are deserializing.
If you don't care about deserialization, then maybe just add a no-op set
:
[XmlAttribute(AttributeName = "version")]
public string Version
{
get { return "1.0"; }
set { }
}