Deserialize from string instead TextReader Deserialize from string instead TextReader xml xml

Deserialize from string instead TextReader


public static string XmlSerializeToString(this object objectInstance){    var serializer = new XmlSerializer(objectInstance.GetType());    var sb = new StringBuilder();    using (TextWriter writer = new StringWriter(sb))    {        serializer.Serialize(writer, objectInstance);    }    return sb.ToString();}public static T XmlDeserializeFromString<T>(this string objectData){    return (T)XmlDeserializeFromString(objectData, typeof(T));}public static object XmlDeserializeFromString(this string objectData, Type type){    var serializer = new XmlSerializer(type);    object result;    using (TextReader reader = new StringReader(objectData))    {        result = serializer.Deserialize(reader);    }    return result;}

To use it:

//Make XMLvar settings = new ObjectCustomerSettings();var xmlString = settings.XmlSerializeToString();//Make Objectvar settings = xmlString.XmlDeserializeFromString<ObjectCustomerSettings>(); 


If you have the XML stored inside a string variable you could use a StringReader:

var xml = @"<car/>";var serializer = new XmlSerializer(typeof(Car));using (var reader = new StringReader(xml)){    var car = (Car)serializer.Deserialize(reader);}


1-liner, takes a XML string text and YourType as the expected object type. not very different from other answers, just compressed to 1 line:

var result =  (YourType)new XmlSerializer(typeof(YourType)).Deserialize(new StringReader(text));