5

I have the following XML:

<Envelope>
 <Body>
  <RESULT>
   <SUCCESS>TRUE</SUCCESS>
   <RecipientId>9876543210</RecipientId>
   <ORGANIZATION_ID>12345-67890-b9e6bcd68d4fb511170ab3fcff55179d</ORGANIZATION_ID>
  </RESULT>
 </Body>
</Envelope>

Which I'm trying to deserialize to:

[XmlRoot(ElementName = "Envelope")]
public class Add_Recipent_response
{
    public string Body { get; set; }
    public string RESULT { get; set; }
    public string SUCCESS { get; set; }
    public string RecipientId { get; set; }
    public string ORGANIZATION_ID { get; set; }
}

With this method:

protected void deserializeXML(string xmlResponse)
{
    XmlSerializer deserializer = new XmlSerializer(typeof(Add_Recipent_response));
    using (TextReader reader = new StringReader(xmlResponse))
    {
        try
        {
            Add_Recipent_response XmlData = (Add_Recipent_response)deserializer.Deserialize(reader);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.GetBaseException());
        }
    }
}

This throws an exception:

InnerException = {"Unexpected node type Element. ReadElementString method can only be called on elements with simple or empty content. Line 4, position 2."}

Can anyone tell me what I'm doing wrong?

Yuval Itzchakov
  • 146,575
  • 32
  • 257
  • 321
Robert
  • 5,278
  • 43
  • 65
  • 115
  • You can generate class from xml/json using visual studio https://msdn.microsoft.com/en-us/library/hh371548(v=vs.110).aspx – suphero Oct 23 '15 at 17:54

1 Answers1

10

Body and Result should be a classes as well because it contains elements. Something like

[XmlRoot(ElementName = "Envelope")]
public class Add_Recipent_response
{
    public Body Body { get; set; }
}

public class Body
{
    public Result RESULT { get; set; }
}

public class Result
{
    public string SUCCESS { get; set; }
    public string RecipientId { get; set; }
    public string ORGANIZATION_ID { get; set; }
}
venerik
  • 5,766
  • 2
  • 33
  • 43
  • Thanks - I'm new to serialization. I'll give this a try... -EDIT- Just tried it and it works, thank you very much. I'll accept as soon as SO allows. – Robert Sep 05 '14 at 14:43