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
_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to