/// <summary> /// Clone this object by Serialize and Deserialize methods /// </summary> /// <param name="obj"></param> /// <returns></returns> public static object Clone(object obj) { XmlObjectSerializer xml = new XmlObjectSerializer(); string s = xml.Serialize(obj).OuterXml; return(xml.Deserialize(s)); }
public static object Deserialize(string xmlContent, string serializerType) { object returnValue = null; SerializerTypes serializerTypeValue; Type instanceType; GetSerializerDetails(serializerType, out serializerTypeValue, out instanceType); if (serializerTypeValue == SerializerTypes.XmlSerializer) { StringReader sww = new StringReader(xmlContent); XmlReader reader = XmlReader.Create(sww); System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(instanceType); returnValue = serializer.Deserialize(reader); } else if (serializerTypeValue == SerializerTypes.XmlObjectSerializer) { XmlObjectSerializer serializer = new XmlObjectSerializer(); returnValue = serializer.Deserialize(xmlContent, true); } else { if (instanceType == typeof(string)) { returnValue = xmlContent; } else { var method = instanceType.GetMethod("Parse", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public); returnValue = method.Invoke(null, new object[] { xmlContent }); } } return returnValue; }
/// <summary> /// Clone this object by Serialize and Deserialize methods /// </summary> /// <param name="obj"></param> /// <returns></returns> public static object Clone(object obj) { XmlObjectSerializer xml = new XmlObjectSerializer(); string s = xml.Serialize(obj).OuterXml; return xml.Deserialize(s); }