Hope I a choisi le bon forum.XML Control sérialisation de DataSet - Attributs sur "élément TableName"
J'ai un objet ensemble de données avec une table qui me vient de la méthode GetDS d'un composant personnalisé commun. J'ai besoin de passer le XML à un autre processus (segmenté comme tableau d'octets). Je l'ai tout fonctionne mais le XML manque certains attributs que le processus de consommation attend.
créer un objet ensemble de données et peut contrôler le nom du TableName (élément racine) et la ligne comme ceci:
da.Fill(ds, "Foo")
ds.DataSetName = "FooUpload"
J'utilise la méthode GetXML de sérialisation XML qui ressemble à ce qui suit:
<?xml version="1.0" standalone="yes" ?>
<FooUpload>
<Foo>
<FooMasterID>483</FooMasterID>
<Country>27</Country>
<PaymentCode>ANN</PaymentCode>
<Amount>132</Amount>
<PaidDate>2012-12-31 00:00:00</PaidDate>
<PaidBy>FooServices</PaidBy>
</Foo>
</FooUpload>
le processus appelant attend
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<FooUpload **ClientCode="FOOO" RecordCount="1" CreateDate="2008-12-09T15:02:18.920" CreateUser="valli"**>
<Foo>
<FooMasterID>483</FooMasterID>
<Country>27</Country>
<PaymentCode>ANN</PaymentCode>
<Amount>132</Amount>
<PaidDate>2012-12-31 00:00:00</PaidDate>
<PaidBy>FooServices</PaidBy>
</Foo>
</FooUpload>
Notez les attributs de la FooUpload élément. Ce noeud est le nom du DataTable dans le DataSet.
J'ai cherché comment contrôler le XMLSerializer et trouver beaucoup d'exemples pour des objets personnalisés. J'ai même trouvé des exemples de définition du mappage de colonne à MappingType.Attribute qui est proche, mais je dois le faire avec l'élément racine qui est en fait le TableName de l'ensemble de données.
Je sens que je suis proche et si je ne trouve pas une solution plus élégante que je vais devoir créer un hack comme boucle et crachant chaîne modifiée ainsi que reste du XML.
Merci à l'avance (doigts croisés)!
Je pense que cela peut en effet être la seule façon. J'ai trouvé quelques indications que c'est "par conception" que la sérialisation DataSet ne gère pas les types mixtes. – sdmcnitt
@sdmcnitt: alors s'il vous plaît votez ma réponse. Et si vous pensez que vous l'utiliserez, acceptez-le. –
J'ai besoin d'une "15 réputation" pour voter. Je suppose que je suis infâme. – sdmcnitt