类未序列化为XML文件

时间:2013-04-02 19:10:44

标签: c# xml streamwriter textwriter

以下代码不输出流。看起来对我不对,但不起作用。

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();

1 个答案:

答案 0 :(得分:0)

  • 查看您获得的内部异常。它会告诉你 哪个字段/属性无法序列化。

  • 另外,请记住序列化类必须具有默认构造函数。 如果你有一个带参数的构造函数,你需要添加 默认也是。 (没有构造函数就好了)

  • XmlSerializer不会序列化抽象属性,将其考虑在内