[Mono-list] Serialization bug
Yury Serdyuk
Yury at serdyuk.botik.ru
Mon Jul 2 06:45:08 UTC 2012
Hi !
I have a simple program that works good under Microsoft .NET, but
doesn't work under Mono on Linux:
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
[Serializable]
public struct Complex {
public double Re;
public double Im;
public Complex(double re, double im) {
Re = re;
Im = im;
}
public static Complex operator + (Complex x, Complex y)
{
return new Complex(x.Re + y.Re, x.Im + y.Im);
}
}
public class Geometry {
public static void Main ( String[] ars ) {
const int dim = 100;
Complex[][] A = new Complex[dim][];
for (int i = 0; i < dim; i++) {
A[i] = new Complex[dim];
}
MemoryStream ms = new MemoryStream ( 16384 );
new BinaryFormatter().Serialize ( ms, A );
}
}
Trying to run it, I have got:
$ mono Geometry.exe
Unhandled Exception: System.NullReferenceException: Object reference not
set to an instance of an object
at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.GetAssemblyNameId
(System.String assembly) [0x00000] in <filename unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.GetAssemblyId
(System.Reflection.Assembly assembly) [0x00000] in <filename unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteTypeSpec
(System.IO.BinaryWriter writer, System.Type type) [0x00000] in <filename
unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteGenericArray
(System.IO.BinaryWriter writer, Int64 id, System.Array array) [0x00000]
in <filename unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteArray
(System.IO.BinaryWriter writer, Int64 id, System.Array array) [0x00000]
in <filename unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectInstance
(System.IO.BinaryWriter writer, System.Object obj, Boolean
isValueObject) [0x00000] in <filename unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteQueuedObjects
(System.IO.BinaryWriter writer) [0x00000] in <filename unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectGraph
(System.IO.BinaryWriter writer, System.Object obj,
System.Runtime.Remoting.Messaging.Header[] headers) [0x00000] in
<filename unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize
(System.IO.Stream serializationStream, System.Object graph,
System.Runtime.Remoting.Messaging.Header[] headers) [0x00000] in
<filename unknown>:0
at
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize
(System.IO.Stream serializationStream, System.Object graph) [0x00000] in
<filename unknown>:0
at Geometry.Main (System.String[] ars) [0x00000] in <filename unknown>:0
I have tried Mono v.2.11.2.
Is it a bug in Mono and how to workaround it if possible ?
Thanks,
Yury
More information about the Mono-list
mailing list