Shamil Salakhetdinov
shamil at smsconsulting.spb.ru
Tue Oct 13 15:17:52 CDT 2009
Continued (from 3.1). /// <summary> /// In memory object data serialization /// </summary> public class InMemoryObjectsSerializer { /// <summary> /// Cconverts a custom object instance to XML string /// </summary> /// <param name="pObject">Object that is to be serialized to XML</param> /// <returns>XML string in UTF8 format</returns> public static String Serialize<T>(Object pObject) { String XmlizedString = null; MemoryStream memoryStream = new MemoryStream(); XmlSerializer xs = new XmlSerializer(typeof(T)); XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); xs.Serialize(xmlTextWriter, pObject); memoryStream = (MemoryStream)xmlTextWriter.BaseStream; XmlizedString = StringToBytes.UTF8ByteArrayToString(memoryStream.ToArray()); return XmlizedString; } /// <summary> /// Reconstruct an object instance from XML string /// </summary> /// <param name="pXmlizedString">Xml string to be used for object instance deserialization</param> /// <returns></returns> public static Object Deserialize<T>(String pXmlizedString) { XmlSerializer xs = new XmlSerializer(typeof(T)); MemoryStream memoryStream = new MemoryStream(StringToBytes.StringToUTF8ByteArray(pXmlizedString)); XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); return xs.Deserialize(memoryStream); } } }