使用 XmlArrayItemAttribute 序列化数据效果不佳
Serializing data using XmlArrayItemAttribute not working well
我有这个 DataContract,它是一个字符串数组:
[System.Xml.Serialization.XmlArrayAttribute(Order = 19)]
[System.Xml.Serialization.XmlArrayItemAttribute("CardNumber", typeof(string), IsNullable = false)]
[DataMember]
public string[] Cards {get; set; }
据我阅读,它应该像这样序列化:
<Cards>
<CardNumber>123123</CardNumber>
</Cards>
但我仍然得到:
<Cards>
<string>123123</string>
</Cards>
怎么了?
您可以改用 CollectionDataContract。
首先,创建一个 class:
[CollectionDataContract(ItemName="CardNumber")]
public class CardsList : List<string> { }
然后,替换这一行:
[DataMember]
public string[] Cards {get; set; }
由此:
[DataMember(Name="Cards")]
public CardsList Cards {get; set; };
希望对您有所帮助。
我有这个 DataContract,它是一个字符串数组:
[System.Xml.Serialization.XmlArrayAttribute(Order = 19)]
[System.Xml.Serialization.XmlArrayItemAttribute("CardNumber", typeof(string), IsNullable = false)]
[DataMember]
public string[] Cards {get; set; }
据我阅读,它应该像这样序列化:
<Cards>
<CardNumber>123123</CardNumber>
</Cards>
但我仍然得到:
<Cards>
<string>123123</string>
</Cards>
怎么了?
您可以改用 CollectionDataContract。 首先,创建一个 class:
[CollectionDataContract(ItemName="CardNumber")]
public class CardsList : List<string> { }
然后,替换这一行:
[DataMember]
public string[] Cards {get; set; }
由此:
[DataMember(Name="Cards")]
public CardsList Cards {get; set; };
希望对您有所帮助。