オブジェクトをシリアル化するために使用するシリアライザの実装によって異なります。あなたはこれをしようと
、あなたが期待しているものを取得します:
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がm_real
とComplex
構造体内のm_imaginary
であるようにプライベートメンバーをシリアル化しないという事実によると思います。
私はmsdnトピックにリンクしました。上記がうまくいかなかった場合は、これを見てください:http://msdn.microsoft.com/en-us/library/system.numerics.complex.aspx – alhazen
あなたのComplex構造体にあるものを投稿してください。 –
ええ、そうです、簡単に作り直すことができます。 –