Serialize the <T> List in XML and Undo the XML in List <T>

Does anyone know how I (or if possible) cancel the XML generated below

[Serializable()] public class CustomDictionary { public string Key { get; set; } public string Value { get; set; } } public class OtherClass { protected void BtnSaveClick(object sender, EventArgs e) { var analysisList = new List<CustomDictionary>(); // Here i fill the analysisList with some data // ... // This renders the xml posted below string myXML = Serialize(analysisList).ToString(); xmlLiteral.Text = myXML; } public static StringWriter Serialize(object o) { var xs = new XmlSerializer(o.GetType()); var xml = new StringWriter(); xs.Serialize(xml, o); return xml; } } 

Submitted by xml

 <?xml version="1.0" encoding="utf-16"?> <ArrayOfCustomDictionary xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <CustomDictionary> <Key>Gender</Key> <Value>0</Value> </CustomDictionary> <CustomDictionary> <Key>Height</Key> <Value>4</Value> </CustomDictionary> <CustomDictionary> <Key>Age</Key> <Value>2</Value> </CustomDictionary> </ArrayOfCustomDictionary> 

Now, after hours of working at Google and trying, I'm stuck (most likely my brain already has a vacation). Can someone help me how to undo this xml back to the list?

thanks

+8
list c # serialization deserialization
source share
2 answers

Just deserialize it:

 public static T Deserialize<T>(string xml) { var xs = new XmlSerializer(typeof(T)); return (T)xs.Deserialize(new StringReader(xml)); } 

Use it as follows:

 var deserializedDictionaries = Deserialize<List<CustomDictionary>>(myXML); 
+14
source share
0
source share

All Articles