XmlSerializer encodes the type name for arrays, but not for scalars. Sue, a Staff/Person, has the Person element. Yolanda, a Manager/Person, does not. I want both Name elements within a Person element.
I have looked for a way to configure an XmlElement, but I have not been successful.
I wish that a query for Person would return Yolanda and Sue.
using System.Xml.Serialization;
public class Person {
public string Name;
public Person() { }
public Person(string name) { this.Name = name; }
}
public class Group {
public Person Manager;
public Person[] Staff;
public Group() { }
public Group(string manager, string staff) {
this.Manager = new Person(manager);
this.Staff = new Person[] { new Person(staff)
};
public void testXmlSerializeFromMicrosoft() {
XmlSerializer serializer = new XmlSerializer(typeof(Group));
serializer.Serialize(Console.Out, new Group("Yolanda", "Sue"));
}
---actual output---
...
<Manager>
<Name>Yolanda</Name>
</Manager>
<Staff>
<Person>
<Name>Sue</Name>
</Person>
</Staff>
--- desired output ---
<Manager>
<Person> //desired element
<Name>Yolanda</Name>
</Person>
</Manager>
<Staff>
<Person>
<Name>Sue</Name>
</Person>
</Staff>