c# - 自定义数据的 XML 序列化

标签 c# .net xml xml-serialization

我有一个 XML 文件:

<Hand cards="C5,SQ,DQ,H8,C9,H7,S9,D5,DA,CJ,S6,HK,D4">
</Hand>

我定义了一个类

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

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

最佳答案

你不能。

您可以做的是创建一个属性,该属性将在其 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(); }
}

关于c# - 自定义数据的 XML 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224666/

相关文章:

.net - Silverlight 内存分析器是否存在?

c++ - 混淆后您的代码有多安全?

xml - OSM - 提取街道名称、纬度/经度和城市

c# - Unity 中 HashSet 的自定义检查器

c# - 使用 async/await 并从 ASP.NET Web API 方法返回 Task<HttpResponseMessage>

c# - 如何检测我的库是否在 .Net Core 3 桌面包下运行

c# - 将部分xml反序列化为字符串

c# - 为具有大量属性的类实现 GetHashCode() 的最佳方法是什么?

c# - 使用 Unity JsonUtility.FromJson 从具有嵌套值的 json 创建对象

c# - 我如何在 C# 中检索 XML 实体值?