
XmlSerialization
By:
andrew4582 on
May 7th, 2012 | syntax:
C# | size: 1.97 KB | hits: 33 | expires: Never
namespace System.Xml {
public class XmlSerialization {
public static string Serialize<T>(T xmlObject) {
return Serialize<T>(xmlObject,false);
}
public static string Serialize<T>(T xmlObject,bool encodeInBase64) {
using(System.IO.MemoryStream memoryStream = new System.IO.MemoryStream()) {
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(T));
System.Xml.Serialization.XmlSerializerNamespaces xmlNamespace = new System.Xml.Serialization.XmlSerializerNamespaces();
xmlNamespace.Add(string.Empty,string.Empty);
xs.Serialize(memoryStream,xmlObject,xmlNamespace);
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
if(encodeInBase64)
return Convert.ToBase64String(System.Text.ASCIIEncoding.Unicode.GetBytes(encoding.GetString(memoryStream.ToArray())));
else
return encoding.GetString(memoryStream.ToArray());
}
}
public static T Deserialize<T>(string xml) {
return Deserialize<T>(xml,false);
}
public static T Deserialize<T>(string xml,bool decodeInBase64) {
string data = xml;
if(decodeInBase64)
data = System.Text.ASCIIEncoding.Unicode.GetString(Convert.FromBase64String(xml));
System.Xml.Serialization.XmlSerializer xs = System.Xml.Serialization.XmlSerializer.FromTypes(new Type[] { typeof(T) })[0];
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
using(System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(encoding.GetBytes(data))) {
System.Xml.XmlTextWriter xmlTextWriter = new System.Xml.XmlTextWriter(memoryStream,System.Text.Encoding.UTF8);
return (T)xs.Deserialize(memoryStream);
}
}
}
}