【问题标题】:Class not serializing to XML File类未序列化为 XML 文件
【发布时间】:2013-03-24 05:36:48
【问题描述】:

下面的代码不输出流。在我看来是正确的,但不起作用。

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

【问题讨论】:

  • 那么,它输出的是什么
  • 首先,显示客户类定义
  • 另外,你应该在TextWriter 周围有一个using

标签: c# xml streamwriter textwriter


【解决方案1】:
  • 查看您得到的内部异常。它会告诉你 哪个字段/属性在序列化时遇到问题。

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

  • XmlSerializer 不会序列化抽象属性,请考虑到这一点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2016-01-27
    • 2010-09-15
    • 2011-09-12
    • 1970-01-01
    相关资源
    最近更新 更多