/// <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 void Serialize(object instance, out string xmlContent, out string serializerType) { SerializerTypes serializerTypeValue = SerializerTypes.Primitive; xmlContent = string.Empty; Type instanceType = typeof(object); if (instance != null) { if (instanceType.IsPrimitive || instanceType == typeof(string)) { xmlContent = string.Format("<{0}>{1}</{0}>", instanceType.Name, instance); } else if (instanceType.GetCustomAttributes(typeof(SerializableAttribute), true).FirstOrDefault() != null) { serializerTypeValue = SerializerTypes.XmlSerializer; StringWriter sww = new StringWriter(); XmlWriter writer = XmlWriter.Create(sww); System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(instanceType); serializer.Serialize(sww, instanceType); xmlContent = sww.ToString(); } else { serializerTypeValue = SerializerTypes.XmlObjectSerializer; XmlObjectSerializer serializer = new XmlObjectSerializer(); xmlContent = serializer.Serialize(instance, instanceType).OuterXml; } } serializerType = string.Format(SerializerTypeFormat, serializerTypeValue, instanceType.AssemblyQualifiedName); }
/// <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); }