[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.
http://bugzilla.ximian.com/show_bug.cgi?id=59113
--- 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
+Resolution:
+Severity:
+Priority: Normal
+Component: CORLIB
+AssignedTo: mono-bugs@ximian.com
+ReportedBy: PAF@design.ru
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+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.
+at
+System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo.GetMemberType
+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
+assemIdToAssemblyTable)
+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
+assemIdToAssemblyTable)
+at
+System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWit
+hMapTyped(BinaryObjectWithMapTyped record)
+at
+System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWit
+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)
+at
+System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize
+(Stream serializationStream, HeaderHandler handler, Boolean fCheck,
+IMethodCallMessage methodCallMessage)
+at
+System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize
+(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
+[http://bugzilla.ximian.com/show_bug.cgi?id=59040]
+
+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.