0

以下のコードはストリームを出力しません。私には正しいように見えますが、機能しません。

LineItem i1 = new LineItem() { Id = 1, PartNumber = "abc" };
LineItem i2 = new LineItem() { Id = 2, PartNumber = "def" };
LineItem i3 = new LineItem() { Id = 3, PartNumber = "ghi" };
LineItem i4 = new LineItem() { Id = 4, PartNumber = "jkl" };

List<LineItem> l1 = new List<LineItem>();
l1.Add(i1);
l1.Add(i2);
l1.Add(i3);
l1.Add(i4);

Customer c1 = new Customer() { Id = 1, Company = "MSFT", Name = "John", LineItems = l1 };

XmlSerializer mySerializer = new XmlSerializer(typeof(Customer));
TextWriter myWriter = new StreamWriter(@"XMLFile1.xml");
mySerializer.Serialize(myWriter, c1);
myWriter.Close();
4

1 に答える 1

0
  • 取得している内部例外を見てください。シリアル化に問題があるフィールド/プロパティが表示されます。

  • また、シリアル化されたクラスにはデフォルトのコンストラクターが必要であることを覚えておいてください。パラメータを持つコンストラクタがある場合は、デフォルトのものも追加する必要があります。(コンストラクタがなくても問題ありません)

  • XmlSerializer は抽象プロパティをシリアル化しません。それを考慮してください

于 2013-04-02T19:16:07.170 に答える