Don't like ads? PRO users don't see any ads ;-)
Guest

XmlSerialization

By: andrew4582 on May 7th, 2012  |  syntax: C#  |  size: 1.97 KB  |  hits: 33  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.  
  2. namespace System.Xml {
  3.     public class XmlSerialization {
  4.         public static string Serialize<T>(T xmlObject) {
  5.             return Serialize<T>(xmlObject,false);
  6.         }
  7.         public static string Serialize<T>(T xmlObject,bool encodeInBase64) {
  8.             using(System.IO.MemoryStream memoryStream = new System.IO.MemoryStream()) {
  9.                 System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(T));
  10.                 System.Xml.Serialization.XmlSerializerNamespaces xmlNamespace = new System.Xml.Serialization.XmlSerializerNamespaces();
  11.                 xmlNamespace.Add(string.Empty,string.Empty);
  12.                 xs.Serialize(memoryStream,xmlObject,xmlNamespace);
  13.                 System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
  14.                 if(encodeInBase64)
  15.                     return Convert.ToBase64String(System.Text.ASCIIEncoding.Unicode.GetBytes(encoding.GetString(memoryStream.ToArray())));
  16.                 else
  17.                     return encoding.GetString(memoryStream.ToArray());
  18.             }
  19.         }
  20.         public static T Deserialize<T>(string xml) {
  21.             return Deserialize<T>(xml,false);
  22.         }
  23.         public static T Deserialize<T>(string xml,bool decodeInBase64) {
  24.             string data = xml;
  25.             if(decodeInBase64)
  26.                 data = System.Text.ASCIIEncoding.Unicode.GetString(Convert.FromBase64String(xml));
  27.             System.Xml.Serialization.XmlSerializer xs = System.Xml.Serialization.XmlSerializer.FromTypes(new Type[] { typeof(T) })[0];
  28.             System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
  29.             using(System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(encoding.GetBytes(data))) {
  30.                 System.Xml.XmlTextWriter xmlTextWriter = new System.Xml.XmlTextWriter(memoryStream,System.Text.Encoding.UTF8);
  31.                 return (T)xs.Deserialize(memoryStream);
  32.             }
  33.         }
  34.     }
  35. }