[Mono-list] Problems with Serialisation
Michael Kämpf
michael.kaempf@fakt-software.de
Thu, 18 Mar 2004 13:03:55 +0100
I tried the following code example. It works fine using the Microsoft
Csharp-Compiler, but doesn't under Mono
----------------------------------------
using System;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
namespace TestSerialisation
{
/// <summary>
/// Zusammenfassung für Class1.
/// </summary>
public class Class1
{
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main(string[] args)
{
TestNS.ExponentialDistribution expDist = new
TestNS.ExponentialDistribution();
TestNS.ElementAttributeMatrix2 attrib = new
TestNS.ElementAttributeMatrix2();
TestNS.Distribution attrib2 = new TestNS.Distribution();
// dosn't work
attrib.SetValue(0, expDist);
// work
//attrib.SetValue(0, attrib2);
// error while serialisation
XmlSerializer ser2 = new
XmlSerializer(typeof(TestNS.ElementAttributeMatrix2));
TextWriter writer2 = new StreamWriter("class2.xml");
ser2.Serialize(writer2, attrib);
writer2.Close();
Console.WriteLine("Return-Taste drücken ...");
Console.ReadLine();
}
}
}
namespace TestNS
{
[Serializable()]
public class Distribution
{
public Distribution() { }
}
[Serializable()]
public class ExponentialDistribution : TestNS.Distribution
{
private double m_Lambda = double.NaN;
public ExponentialDistribution()
{
}
public double Lambda
{
set { this.m_Lambda = value; }
get { return this.m_Lambda; }
}
}
[Serializable]
public class ElementAttributeMatrix2
{
private object[] m_Values2;
#region constructors
public ElementAttributeMatrix2()
{
}
#endregion
//public void SetValue(int x, TestNS.ExponentialDistribution2 _Dist)
public void SetValue(int x, object _Dist)
{
this.m_Values2 = new object[1];
((object[]) this.m_Values2)[0] = new object[1];
((object[]) ((object[]) this.m_Values2)[0])[0] = new object[x + 1];
((object[]) ((object[]) ((object[]) this.m_Values2)[0])[0])[0] = _Dist;
}
[XmlArrayItem(typeof(object))]
[XmlArrayItem(typeof(object[]))]
[XmlArrayItem(typeof(TestNS.Distribution))]
[XmlArrayItem(typeof(TestNS.Distribution[]))]
[XmlArrayItem(typeof(TestNS.ExponentialDistribution))]
[XmlArrayItem(typeof(TestNS.ExponentialDistribution[]))]
public object[] MatrixValues
{
set { this.m_Values2 = value; }
get { return this.m_Values2; }
}
}
}
----------------------------------------
Can you help me?
with friendly reguards
Michael Kaempf
_______________________________________
Michael Kaempf
Email: michael.kaempf@fakt-software.de
michael.kaempf@s2001.tu-chemnitz.de
Tel.: 0175/7909349
0371/9097234