document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /// <summary>
  2. /// Serialize any object to xml string
  3. /// </summary>
  4. /// <typeparam name="T"></typeparam>
  5. /// <param name="obj"></param>
  6. /// <returns></returns>
  7. public static string SerializeToXmlString<T>(this T obj)
  8. {
  9.     XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
  10.     using(StringWriter textWriter = new StringWriter())
  11.     {
  12.         xmlSerializer.Serialize(textWriter, obj);
  13.         return textWriter.ToString();
  14.     }
  15. }
  16.  
  17. /// <summary>
  18. /// Deserialize from xml string to object
  19. /// </summary>
  20. /// <typeparam name="T"></typeparam>
  21. /// <param name="obj"></param>
  22. /// <param name="s"></param>
  23. /// <returns></returns>
  24. public static T DeserializeFromXmlString<T>(this T obj, string s)
  25. {
  26.     var serializer = new XmlSerializer(obj.GetType());
  27.     T result;
  28.     using (TextReader reader = new StringReader(s))
  29.     {
  30.         result = (T)serializer.Deserialize(reader);
  31.     }
  32.     return result;
  33. }
  34.  
  35. /// <summary>
  36. /// Perform deep copy on any object
  37. /// </summary>
  38. /// <typeparam name="T"></typeparam>
  39. /// <param name="obj"></param>
  40. /// <returns></returns>
  41. public static T CloneObject<T>(this T obj)
  42. {
  43.     return obj.DeserializeFromXmlString(obj.SerializeToXmlString());
  44. }
');