使用 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; };

希望对您有所帮助。