это ничего не меняет (почти ничего)
серверному программисту надо правильным образом указать [XmlAttribute] в этом "одном-на-все-случаи-жизни" классе и все.
Получите все пропертис не в виде нодов, а в виде атрибутов. Одним из атрибутов, очевидно, будет тип объекта, чтобы было понятно, что с этим всем делать.
Там в примере все написано:

Код:
public class DataClass
{
public DataClass(){}
public string ID = Guid.NewGuid().ToString();
public string Name = "Just Name";
public Decimal Count = 10;
public DateTime Date = DateTime.Now;
}
дает

Код:
<?xml version="1.0" encoding="utf-8"?>
<DataClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID>34332413-e70f-44f7-b35c-b34c47812dbc</ID>
<Name>Just Name</Name>
<Count>10</Count>
<Date>2006-10-30T12:35:20.3110319+03:00</Date>
</DataClass>
а всего навсего указание [XmlAttribute]:

Код:
[XmlRoot("Data")] // изменим имя корневого элемента
public class DataClass
{
public DataClass(){}
[XmlAttribute] // сериализуем в xml атрибут
public string ID = Guid.NewGuid().ToString();
[XmlAttribute] // сериализуем в xml атрибут
public string Name = "Just Name";
[XmlElement("Reserved")] // изменим имя xml элемента
public Decimal Count = 10;
[XmlIgnore] // не будет сериализоваться
public DateTime Date = DateTime.Now;
}
кардинально меняет картину:

Код:
<?xml version="1.0" encoding="utf-8"?>
<Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="cc340d5e-4c80-4fe5-9c3d-e49f64e26b22" Name="Just Name">
<Reserved>10</Reserved>
</Data>