2010-03-08 4 views
0

J'ai une classe DataContract simple qui contient un tableau d'une autre classe DataContract. Lorsqu'il est sérialisé, le XML résultant contient le tableau, mais chaque balise commence par "a:" (exemple: <a:name>test</a:name>). Existe-t-il un moyen de dire au sérialiseur de les ignorer?Sérialisation WCF DataContract avec collections

Merci!

Répondre

1

Le a: définit un espace de noms XML. Vous pourriez probablement placer les deux Datacontracts dans le même espace de noms XML, et le: disparaîtrait. Bien que ce soit encore valide XML de toute façon.

0

Spécifiez un espace de noms vide pour les contrats de données - quelque chose comme ceci:

[DataContract(Namespace="")] 
public class YourClass 
{ 
    .... 
} 

[DataContract(Namespace="")] 
public class YourArrayClass 
{ 
    .... 
} 

Cela devrait prendre soin d'elle.

Mais pourquoi cela vous dérange-t-il? Les espaces de noms XML sont une partie intégrante et importante de XML, en particulier lorsque vous désambiguïsez des éléments XML provenant de diverses sources .... consultez la section W3Schools pour savoir pourquoi les espaces de noms XML sont importants et comment en perdre la peur - vivement recommandé!