41 votes

Comment ajouter des attributs pour la sérialisation De la lérialxxx

Je rencontre un problème avec la sérialisation de l'objet et de l', je peux le faire pour créer toutes les sorties, sauf pour le cas où j'ai un Élément qui a besoin d'une valeur et d'un attribut. Voici la sortie requise:

<Root>
  <Method>Retrieve</Method>
  <Options>
    <Filter>
      <Times>
        <TimeFrom>2009-06-17</TimeFrom>
      </Times>
      <Document type="word">document name</Document>
    </Filter>
  </Options>
</AdCourierAPI>

Je peux construire tout cela mais ne peut pas trouver un moyen de mettre le Document type de l'attribut, voici un segment de la classe de l'objet

[XmlRoot("Root"), Serializable]    
public class Root    
{    
    [XmlElement("Method")]    
    public string method="RetrieveApplications";    
    [XmlElement("Options")]    
    public _Options Options;    
}    
public class _Options    
{
    [XmlElement("Filter")]    
    public _Filter Filter;    
}
public class _Filter    
{
    [XmlElement("Times")]    
    public _Times Times;    
    [XmlElement("Documents")]    
    public string Documents;    
}

ce qui me donne:

<Document>document name</Document>

plutôt que:

<Document type="word">document name</Document>

mais je ne peux pas trouver un moyen de corriger cela, veuillez nous en aviser.

Merci

62voto

bruno conde Points 28120

Où avez-vous le `` stocké?

Normalement, vous pourriez avoir quelque chose comme:

11voto

Thomas Levesque Points 141081

La classe n'a pas de propriété, vous ne pouvez donc pas l'utiliser pour créer la sortie désirée. Vous devez créer une `` classe à la place :

Et vous devez changer la propriété pour taper

8voto

Marc Gravell Points 482669

Il semble que vous avez besoin d'une classe supplémentaire:

Lorsqu'un cas (dans l'exemple) aurait `` et ; serait un `````` .

Soit dit en passant - les champs publics sont rarement une bonne idée ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X