c# - 从 XML 文件反序列化 int 数组

标签 c# xml serialization xml-serialization deserialization

我正在编写一个 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/

相关文章:

c# - 将 C 定义宏转换为 C#

c# - 从动态创建的 TextBox ASP.NET 中读取值(表内)

Android 应用程序未连接到 Wifi,但在通过 Wifi 共享的 3G 中工作正常

xml - 使用 XPATH 和 XSLT 根据属性值的某些相等条件在 XML 中提取相关的不同元素标签

javascript - JQuery 序列化数组到 PHP 数组 Nesttable jscript

C#:为什么类变量调用实现的接口(interface)方法比接口(interface)变量更快?

android - 如何使 XML 字符串加粗、加下划线等?

使用 Rebus 的序列化问题

javascript - 序列化 JavaScript 对象

c# - 在datetimepicker已经(保存)写入记录后,如何在sql base中删除,重置或写入 "null"值?