它取決於您用於序列化對象的序列化程序的實現。
如果你試試這個,你會得到你期待什麼:
using System.IO;
using System.Numerics;
using System.Runtime.Serialization.Formatters.Soap;
public class Test {
public static void Main() {
var c = new Complex(1, 2);
Stream stream = File.Open("data.xml", FileMode.Create);
SoapFormatter formatter = new SoapFormatter();
formatter.Serialize(stream, c);
stream.Close();
}
}
相反,如果你使用的System.Xml.Serialization
命名空間的類,你會得到類似的東西給你貼什麼:
using System;
using System.IO;
using System.Numerics;
using System.Xml.Serialization;
public class Test {
public static void Main() {
var c = new Complex(1, 2);
XmlSerializer s = new XmlSerializer(typeof(Complex));
StringWriter sw = new StringWriter();
s.Serialize(sw, c);
Console.WriteLine(sw.ToString());
}
}
我認爲這是由於XmlSerializer不會序列化私有成員(如在Complex
結構中的m_real
和m_imaginary
)。
我鏈接到msdn主題。請查看以上情況,以防上述情況無效:http://msdn.microsoft.com/en-us/library/system.numerics.complex.aspx – alhazen
發佈您複雜結構中的內容。 –
嗯,你是對的,我可以很容易地重新創建它。 –