采用序列XmlArrayItemAttribute都不尽如人意数据(Serializing data

2019-09-29 17:32发布

我有这个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>

它出什么问题了?

Answer 1:

您可以使用CollectionDataContract代替。 首先,创建一个类:

[CollectionDataContract(ItemName="CardNumber")]
public class CardsList : List<string> { }

然后,替换该行:

[DataMember]
public string[] Cards {get; set; }

这样:

[DataMember(Name="Cards")]
public CardsList Cards {get; set; };

希望能帮助到你。



文章来源: Serializing data using XmlArrayItemAttribute not working well