[Mono-bugs] [Bug 59113][Nor] New - System.Guid serialized by Mono is incompatible with deserializer of Microsoft CLR

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Wed, 26 May 2004 11:03:53 -0400 (EDT)

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by paf@design.ru.


--- shadow/59113	2004-05-26 11:03:53.000000000 -0400
+++ shadow/59113.tmp.14122	2004-05-26 11:03:53.000000000 -0400
@@ -0,0 +1,108 @@
+Bug#: 59113
+Product: Mono: Class Libraries
+Version: unspecified
+OS: All
+OS Details: 
+Status: NEW   
+Priority: Normal
+Component: CORLIB
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: PAF@design.ru               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+Summary: System.Guid serialized by Mono is incompatible with deserializer of Microsoft CLR
+server part runs on Mono, client part on Microsoft.Net implementation.
+they need to exchange info.
+am trying to use Serialize|Deserialize to do that
+Steps to reproduce the problem:
+1. serializing some data on Mono
+2. transferring it to box with Microsoft.Net
+3. deserializing data there
+Actual Results:
+System.Runtime.Serialization.SerializationException: Cannot find member 
+name System.Guid.
+s(String[] inMemberNames)
+at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String 
+objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object
+[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, 
+Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray 
+at System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String 
+name, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] 
+typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 
+objectId, BinaryAssemblyInfo assemblyInfo, SizedArray 
+hMapTyped(BinaryObjectWithMapTyped record)
+hMapTyped(BinaryHeaderEnum binaryHeaderEnum)
+at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
+at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize
+(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, 
+IMethodCallMessage methodCallMessage)
+(Stream serializationStream, HeaderHandler handler, Boolean fCheck, 
+IMethodCallMessage methodCallMessage)
+(Stream serializationStream)
+at ArtLebedev.Imprimatur2.Kernel.SocketReaderWriter.ReadObject()
+Expected Results:
+normal deserialization.
+and overall compatibility of mono<=>ms libraries in serialization format.
+Additional Information:
+got Guid.cs from CVS today.
+note: it's fields are declared as
+private uint _timeLow;
+private ushort _timeMid;
+private ushort _timeHighAndVersion;
+private byte _clockSeqHiAndReserved;
+private byte _clockSeqLow;
+private byte _node0;
+private byte _node1;
+private byte _node2;
+private byte _node3;
+private byte _node4;
+private byte _node5;
+while to be compatible with MS.NET they should be like this:
+private int         _a;
+private short       _b;
+private short       _c;
+private byte       _d;
+private byte       _e;
+private byte       _f;
+private byte       _g;
+private byte       _h;
+private byte       _i;
+private byte       _j;
+private byte       _k;
+I wanted to make a patch like I did with Version.cs
+but am not sure about first few fields:
+in Mono they are declared as 
+   unsigned
+while MS.NET declares them as
+   signed
+Am sure author would easily figure that out.