我正在编写一个 C# 项目,我正在尝试反序列化一个具有 int[] 类型字段的对象,我想以另一种方式进行反序列化。
假设我有一个类:
class Player
{
public string Name;
public int[] Spells;
}
还有一个 xml 文件,我从中反序列化了类 Player 的一个实例:
<Player>
<Name>John</Name>
<Spells>
<int>1</int>
<int>5</int>
<int>9</int>
</Spells>
</Player>
问题是我不希望 xml 文件看起来像那样,我希望它更像这样:
<Player>
<Name>John</Name>
<Spells>1 5 9</Spells>
</Player>
我正在使用 XmlSerializer 并且它仅在读取表单第一个 xml 时才反序列化字段 Spells 。我想知道这是否是一种像简单字段一样反序列化 int 数组的方法。
最佳答案
其中一种方法可能是创建另一个属性,该属性将占用空间分隔集以用于序列化目的。例如,
class Player
{
public string Name;
[XmlIgnore]
public int[] Spells;
[XmlElement("Spells")
public string SpellsString
{
get
{
// array to space delimited string
}
set
{
// string to array conversion
}
}
}
关于c# - 从 XML 文件反序列化 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702227/