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
Eric Herlitz
source share2 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
JordΓ£o
source share