XML序列化问题-对象将序列化但不反序列化某些属性

本文关键字:序列化 反序列化 属性 问题 对象 XML | 更新日期: 2023-09-27 18:00:37

我有一个相当复杂的业务对象,似乎遇到了问题。对象将串行化而不会出现任何问题,我可以转到它被串行化到的XML文件,并查看值是否确实存储在该文件中。然而,当我尝试反序列化对象时,有问题的属性并没有包含它们保存的值,它们是字符串,所以它们以String.Empty值的形式出现。该对象有许多属性,其中大多数都能正常工作,但我有一组String属性,它们似乎被卡住了。示例

[Serializable]
public class Foo
{
   public String NameWorking { get; set; }
   public String TitleNotWorking { get; set; }
   ...
}

当我序列化到"obj.xml"并用记事本打开所述文件时,我可以看到节点NameValue和节点TitleValue,这对于序列化是正确的,但当我跟踪调试时,当"obj.xml"文件被反序列化时,得到的Foo对象具有正确的NameWorking值,但对于TitleNotWorking只有String.Empty。是否有某种错误可能导致这种情况?有变通办法吗?此外,我不知道这是否是问题的一部分,但有问题的属性是应用程序中的数据绑定属性。但所有其他工作特性也是如此。

XML序列化问题-对象将序列化但不反序列化某些属性

您将需要XML元素

在您的情况下,它将是以下

[Serializable]
public class Foo
{
   [XmlElement]
   public String NameWorking { get; set; }
   [XmlElement]
   public String TitleNotWorking { get; set; }
   ...
}