Given the following example:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization.Formatters.Binary; using System.IO; namespace SerializationTest { [Serializable] class Foo : Dictionary<int, string> { } class Program { static void Main(string[] args) { Foo foo = new Foo(); foo[1] = "Left"; foo[2] = "Right"; BinaryFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); formatter.Serialize(stream, foo); stream.Seek(0, SeekOrigin.Begin); formatter.Deserialize(stream); } } }
In the last line, a SerializationException is thrown because the formatter can't find the constructor to Foo. Why is that?
Append the following code lines in the class Foo
public Foo() { } public Foo(SerializationInfo info, StreamingContext context) : base(info, context) { }
The class needs an constructor with the relevant serialisation parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With