XML反序列化不起作用

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

我需要将XML文件反序列化为对象.XML内容:

  <Players dealerId="2">
    <Player id="1">
      <ScreenName>JetYeo</ScreenName>
    </Player>
    <Player id="2">
      <ScreenName>Test</ScreenName>
    </Player>
  </Players>
Run Code Online (Sandbox Code Playgroud)

我定义了一个对象类:

[Serializable()]
[XmlRoot("Players")]
public class Players
{
    [XmlAttribute("dealerId")]
    public int DealerId { get; set; }
    [XmlArrayItem("Player", typeof(Player))]
    public Player[] Players { get; set; }
}

[Serializable()]
[XmlRoot("Player")]
public class Player
{
    [XmlAttribute("id")]
    public int Id { get; set; }
    [XmlElement("ScreenName")]
    public string ScreenName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,反序列化不起作用:Players数组为null.请帮我解决一下.谢谢.

Aph*_*ion 6

识别此类问题的最佳方法是实际反转序列化逻辑.使用与XML中的数据匹配的数据创建对象.然后尝试序列化它,使输出与您要反序列化的数据相同.

这样,您实际上可以"看到"可以应用于属性的可用属性的效果.

如果序列化相同,您也可以反序列化它.