I have a server running on MS.NET and a client on Mono (this is the Unity3D engine), and when I try to use BinaryFormatter (). A deserialize object like this:
[Serializable] public class Simulator { public IDictionary<int, Task> tasks = new Dictionary<int, Task>();
the client side cannot find / load types: dictionary, list ... The same “client code” running under MS.NET works well, i.e. There are no exceptions during deserialization.
As I read from http://www.mono-project.com/FAQ:_Technical#Compatibility , this is a common problem:
"If you serialize your own classes, there is no problem, since you have control over the assemblies and classes that are used for serialization. However, if you serialize objects from the framework, serialization compatibility is not guaranteed, since the internal structure of these objects may be different "This compatibility is not even guaranteed between different versions of MS.NET or versions of Mono."
Does ProtoBuf-Net help avoid / solve this serialization / deserialization problem?
source share