2010-02-01 8 views
2

Comment pourrais-je représenter quelque chose comme ça.Net Représentez xml en classe sans xsd

<product> 
    <sku>12452</sku> 
    <attribute name="details">good stuff</attribute> 
    <attribute name="qty">5</attribute> 
</product> 

pour une utilisation dans mon service WCF? Vous ne savez pas comment définir les multiples attributs dont la seule différence est le "nom".

J'ai besoin de cette configuration correctement en tant que DataMember afin que xml y soit désérialisé.

sku serait quelque chose comme:

[DataMember(Name = "sku")] 
public string sku; 

Qu'est-ce que j'utiliser pour les deux attributs?

Répondre

2

Vous ne pourrez pas utiliser DataContracts car le sérialiseur DataContract ne prend pas en charge les attributs XML (uniquement des éléments). Si vous avez vraiment besoin de générer des messages avec ce schéma, vous devrez à la place use XmlSerializer.

+0

Si les DataContracts sont plus récents, pourquoi ne prendraient-ils pas en charge les attributs? Sont-ils obsolètes? –

+1

@Chris: le DataContractSerializer ne prend pas en charge les attributs sur les nœuds XML pour des raisons de performances. Ne pas les supporter rend le DCS 10-15% plus rapide que le XmlSerializer sur le même document. –