Is there a way to cause XmlSerializer to serialize primitive class members (e.g. string properties) as XML attributes, not as XML elements, without having to write [XmlAttribute] in front of each property declaration?
I.e. is there a global switch that tells XmlSerializer to serialize all primitive class members as XML attributes?
Assume that we have the following class:
public class Person
{
public string FirstName
{
...
}
public string LastName
{
...
}
}
Then XmlSerializer generates this code by default:
<Person>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
</Person>
What I want, however, is this code:
<Person FirstName="John" LastName="Doe"/>
Again: I want to do that without [XmlAttribute] (or without XmlAttributeOverrides, which would be even more work).
One possible solution would be to use a generic postprocessing step that applies an XSLT transform to convert elements to attributes. But I wonder whether there is a simpler solution.