Comment pouvez-vous contrôler la sérialisation .NET DataContract pour qu'elle utilise des attributs XML au lieu d'éléments?

Si j'ai une classe marquée comme une DataContract et quelques propriétés marqué avec DataMember attributs que je peut sérialiser à XML facilement, mais il permettrait de créer une sortie comme:

<Person>
    <Name>John Smith</Name>
    <Email>[email protected]</Email>
    <Phone>123-123-1234</Phone>
</Person>

Ce que je préfère c'est les attributs, tels que...

<Person Name="John Smith" Email="[email protected]" Phone="123-123-1234" />

La DataMember attribut me permet de contrôler le Nom et l'Ordre, mais pas de savoir s'il est sérialisé comme un élément ou un attribut. J'ai regardé autour et a trouvé DataContractFormat et IXmlSerializable mais j'espère qu'il y a-t-il une solution plus facile.

Quelle est la meilleure façon de le faire?

source d'informationauteur Brennan