2010-05-14 5 views
2

J'appelle un service Web REST.Sérialisation de la réponse XML de WebService à Object (C#)

La réponse ressemble à ceci:

<?xml version=\"1.0\" encoding=\"utf-8\"?> 
<data> 
    <status>1</status> 
    <message>OK</message> 
    <results> 
    <result> 
     <account>12345</account> 
     <to></to> 
     <from>054321</from> 
     <message>Testing</message> 
     <flash></flash> 
     <replace></replace> 
     <report></report> 
     <concat></concat> 
     <id>f8d3eea1cbf6771a4bb02af3fb15253e</id> 
    </result> 
    </results> 
</data> 

J'ai une classe appelée "SMSSendingResponse" qui ressemble à ceci:

public class SMSSendingResponse 
{ 
    public string AccountNumber { get; set; } 
    public string Status { get; set; } 
    public string Message { get; set; } 
    public string ResponseID { get; set; } 
    public SMSMessage SMSMessage { get; set; } 
} 

SMSMessage ressemble à ceci:

public class SMSMessage 
{ 
    public string To { get; set; } 
    public string From { get; set; } 
    public string Message { get; set; } 
} 

Comme vous pouvez le voir, j'ignore certains des éléments retournés (flash, remplacement, etc.)

Quelle est la meilleure façon de sérialiser le XML retourné dans cet objet?

J'ai essayé d'utiliser XmlSerializer, mais cela a généré une erreur ... Je suppose que je ne suis pas en train de sérialiser en utilisant XmlSerializer.

Si elle était JSON, j'utiliser la bibliothèque NewtonSoft.Json ... Alors je suppose que je pourrais convertir xml à JSON, sérialisation alors de cette façon, est-il une meilleure façon?

Répondre

2

Vous pouvez utiliser XmlSerializer très bien tant que vous ajoutez les attributs appropriés aux champs de vos classes. Check these out for an example of some. Vous rencontrerez sans doute des erreurs les premières fois que vous travaillerez avec, mais restez-y, car une fois que vous l'aurez compris, c'est un excellent outil.

EDIT:

Here is a better place to find all of the available attributes. Parcourez la liste pour tout ce qui commence par Xml et se termine par Attribute. Vous voudrez les connaître tous.

0

Vous pouvez utiliser xsd.exe pour extraire le schéma du fichier xml et générer la classe C# correspondante. Vous pouvez utiliser la classe générée pour sérialiser et désérialiser le fichier XML. Si vous montrez le code, nous serons en mesure d'identifier les erreurs plus facilement.