/// <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);
 }