1

我正在运行以下代码:

public String Serialize()
{
  XmlSerializer serializer = new XmlSerializer(typeof(SomeInformation));
  StringWriter writer = new StringWriter();
  serializer.Serialize(writer, new SomeInformation());
  String output = writer.ToString();
  return output;
}

序列化如下。

[XmlRoot("MyRoot")]
public class SomeInformation
{
  public SomeInformation() { }

  [XmlElement("SomeNode1")]
  public String Prop1 { get { return "Some prop 1"; } }

  [XmlElement("SomeNode2")]
  public String Prop2 { get { return "Some prop 2"; } }
}

我正在获取包含 XML 但没有内部标签的字符串。我是序列化的新手,完全被卡住了。关于我做错了什么有什么建议吗?!

4

3 回答 3

2

XmlSerializer 不序列化只读属性。尝试向它们添加空设置器。

有关更多详细信息,请查看:Why are properties without a setter not serialized

于 2013-03-19T17:31:10.930 回答
2

序列化只读属性没有意义。我会制作Prop1Prop2读/写属性并在代码中设置它们。

于 2013-03-19T17:31:12.547 回答
1

您正在使用只读属性。不。

我刚刚添加了空设置器来运行您的课程,并获得了字符串中的数据。

[XmlRoot("MyRoot")]
public sealed class SomeInformation
{
  public SomeInformation() { }

  [XmlElement("SomeNode1")]
  public String Prop1 { get { return "Some prop 1"; } set { } }

  [XmlElement("SomeNode2")]
  public String Prop2 { get { return "Some prop 2"; } set { } }
}
于 2013-03-19T17:35:47.183 回答