我正在运行以下代码:
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但没有内部标记。我是序列化的新手,完全陷入困境。关于我做错了什么的建议?!
答案 0 :(得分:2)
XmlSerializer不会序列化只读属性。尝试添加空的setter。
有关详细信息,请查看:Why are properties without a setter not serialized
答案 1 :(得分:2)
序列化只读属性没有意义。我会使Prop1
和Prop2
读/写属性并在代码中设置它们。
答案 2 :(得分:1)
您使用的是只读属性。不。
我刚刚添加了空的setter来运行你的类,我得到了字符串中的数据。
[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 { } }
}