Thursday 15 March 2012

c# - Trouble deserializing an XML in .NET -



c# - Trouble deserializing an XML in .NET -

this string:

string incomingordrexml = @"<getorderstatus xmlns:i=""http://www.w3.org/2001/xmlschema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/orderstatusconsole""><accountid>5</accountid><batch></batch><date></date><ordernumber></ordernumber><password></password><sequence></sequence><statuscode></statuscode><test></test><trackingid></trackingid></getorderstatus>";

this class:

public class getorderstatus { public string accountid { get; set; } public string password { get; set; } public string batch { get; set; } public string sequence { get; set; } public string test { get; set; } public string date { get; set; } public string ordernumber { get; set; } public string statuscode { get; set; } public string trackingid { get; set; } }

this deserialization code:

string incomingordrexml = @"<getorderstatus xmlns:i=""http://www.w3.org/2001/xmlschema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/orderstatusconsole""><accountid>5</accountid><batch></batch><date></date><ordernumber></ordernumber><password></password><sequence></sequence><statuscode></statuscode><test></test><trackingid></trackingid></getorderstatus>"; var reader = new stringreader(incomingordrexml); xmlserializer serializer = new xmlserializer(typeof(getorderstatus)); var instance = (getorderstatus)serializer.deserialize(reader);

fails in lastly line, says

{"<getorderstatus xmlns='http://schemas.datacontract.org/2004/07/orderstatusconsole'> not expected."}

this line alter depending on sends xml. meaning if sender orderstatusconsole it's above if sender jeff have jeff in end.

any clues?

thanks in advance.

it can't deserialize if don't have right namespace defined, either remove xmlns='..' line, or utilize this:

[xmlrootattribute(namespace = "http://schemas.datacontract.org/2004/07/orderstatusconsole")] public class getorderstatus { ... }

c# xml

No comments:

Post a Comment