Usage example
var qm = new QueueMessage("foo", 99); var ba = ByteArraySerializer<QueueMessage>.Serialize(qm));
Class that performs the serialization / deserialization
using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace Codingoutloud { public static class ByteArraySerializer<T> { public static byte[] Serialize(T m) { var ms = new MemoryStream(); try { var formatter = new BinaryFormatter(); formatter.Serialize(ms, m); return ms.ToArray(); } finally { ms.Close(); } } public static T Deserialize(byte[] byteArray) { var ms = new MemoryStream(byteArray); try { var formatter = new BinaryFormatter(); return (T)formatter.Deserialize(ms); } finally { ms.Close(); } } } }
Example of an object we would serialize
using System; namespace Codingoutloud { [Serializable] public class QueueMessage { public QueueMessage() {} public QueueMessage(string name, int id) { Name = name; Id = id; } public string Name { get; set; } public int Id { get; set; } } }