自定义数据的XML序列化

Leo*_* Vo 1 .net c# xml xml-serialization

我有一个XML文件:

<Hand cards="C5,SQ,DQ,H8,C9,H7,S9,D5,DA,CJ,S6,HK,D4">
</Hand>
Run Code Online (Sandbox Code Playgroud)

我定义了一个类

[Serializable()]
[XmlRoot("Hand")]
public class Hand
{
    [XmlAttribute("cards")]
    public List<string> Cards{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下如何将XML反序列化为对象?手对象结果必须具有卡= {C5,SQ,DQ,H8,C9,H7,S9,D5,DA,CJ,S6,HK,D4}.

Ale*_*aga 5

你不能.

你可以做的是创建一个属性,它将在其getter/setter中进行这种转换

[XmlIgnore]
public List<string> CardList { get; private set; }

[XmlAttribute("cards")]
public string Cards {
   get { return String.Join(",", CardList); }
   set { CardList = value.Split(",").ToList(); }
}
Run Code Online (Sandbox Code Playgroud)