Skip to content

Instantly share code, notes, and snippets.

@dopplesoldner
Created July 7, 2014 11:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dopplesoldner/efb87e82363a9c8313fc to your computer and use it in GitHub Desktop.
Save dopplesoldner/efb87e82363a9c8313fc to your computer and use it in GitHub Desktop.
serializers in c#
public static class Serializer
{
public static byte[] Serialize<T>(T obj)
{
var serializer = new DataContractSerializer(typeof(T));
var stream = new MemoryStream();
using (var writer =
XmlDictionaryWriter.CreateBinaryWriter(stream))
{
serializer.WriteObject(writer, obj);
}
return stream.ToArray();
}
public static T Deserialize<T>(byte[] data)
{
var serializer = new DataContractSerializer(typeof(T));
using (var stream = new MemoryStream(data))
using (var reader =
XmlDictionaryReader.CreateBinaryReader(
stream, XmlDictionaryReaderQuotas.Max))
{
return (T)serializer.ReadObject(reader);
}
}
private static string SerializeToXml<T>(T value)
{
var writer = new StringWriter(CultureInfo.InvariantCulture);
var serializer = new XmlSerializer(typeof(T));
serializer.Serialize(writer, value);
return writer.ToString();
}
private static T DeserializeFromXml<T>(string xmlText)
{
var reader = new StringReader(xmlText);
var serializer = new XmlSerializer(typeof(T));
var obj = (T)serializer.Deserialize(reader);
return obj;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment