我有这个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>
它出了什么问题?
答案 0 :(得分:1)
您可以改用 CollectionDataContract 。 首先,创建一个类:
[CollectionDataContract(ItemName="CardNumber")]
public class CardsList : List<string> { }
然后,替换这一行:
[DataMember]
public string[] Cards {get; set; }
由此:
[DataMember(Name="Cards")]
public CardsList Cards {get; set; };
希望它有所帮助。