Tuesday, 15 July 2014

Error while deserializing xml string into object using XMLSerializer in C# -



Error while deserializing xml string into object using XMLSerializer in C# -

here dto

[xmltypeattribute(typename="xattributes")] public class xattributes { [xmlarray(elementname="attributes")] [xmlarrayitem(elementname="attribute")] public list<attribute> attributes { get; set; } public xattributes() { attributes = new list<attribute>(); } } public class attribute { [xmlelement(elementname = "name")] public string name { get; set; } [xmlelement(elementname = "value")] public string value { get; set; } [xmlelement(elementname = "valuetype")] public valuetype valuetype {get; set; } [xmlarray(elementname="children" )] public list<attribute> children { get; set; } }

and here deserializing code

public static t toobject<t>(this string xmldata) { var s = new xmlserializer(typeof(t)); object obj=null; using (var sr = new stringreader(xmldata)) { obj = s.deserialize(sr); } homecoming (t)obj; }

and here code phone call deserialize it

string attr = @"<xattributes><attributes> <attribute> <name>test</name> <value>testvlau</value> <valuetype>string</valuetype> <children/> </attribute> <attribute> <name>test1</name> <value>testvlau1</value> <valuetype>string</valuetype> <children/> </attribute> </attributes><xattributes>"; var attribute = attr.toobject<xattributes>();

i error

there error in xml document (14, 55).

at line

obj = s.deserialize(sr);

any help appreciated.

thanks.

it's hard tell here problem seek following.... replace

[xmltypeattribute(typename="xattributes")] public class xattributes { .... }

with this:

[xmlroot("xattributes")] public class xattributes { .... }

also, don't forget include xml declaration in xml string:

string attr = @"<?xml version="1.0" encoding="utf-8"?> <xattributes><attributes> <attribute> <name>test</name> <value>testvlau</value> <valuetype>string</valuetype> <children/> </attribute> <attribute> <name>test1</name> <value>testvlau1</value> <valuetype>string</valuetype> <children/> </attribute> </attributes><xattributes>";

ps: have created generic xmlserializer may useful, please take @ article in codeproject:

xml serialization using generics

c# xml xmlserializer

No comments:

Post a Comment