Binary serialization and deserialization without creating files (via strings)
- by the_V
Hi,
I'm trying to create a class that will contain functions for serializing/deserializing objects to/from string. That's what it looks like now:
public class BinarySerialization
    {
        public static string SerializeObject(object o)
        {
            string result = "";
            if ((o.GetType().Attributes & TypeAttributes.Serializable) == TypeAttributes.Serializable)
            {
                BinaryFormatter f = new BinaryFormatter();
                using (MemoryStream str = new MemoryStream())
                {
                    f.Serialize(str, o);
                    str.Position = 0;
                    StreamReader reader = new StreamReader(str);
                    result = reader.ReadToEnd();
                }
            }
            return result;
        }
        public static object DeserializeObject(string str)
        {
            object result = null;
            byte[] bytes = System.Text.Encoding.ASCII.GetBytes(str);
            using (MemoryStream stream = new MemoryStream(bytes))
            {
                BinaryFormatter bf = new BinaryFormatter();
                result = bf.Deserialize(stream);
            }
            return result;
        }
    }
SerializeObject method works well, but DeserializeObject does not. I always get an exception with message "End of Stream encountered before parsing was completed". What may be wrong here?