Сбой из-за неправильных атрибутов; разница в том, что XmlArrayItem
ожидает двухуровневую связь (<Players><Players><Player .../>...</Players></Players>
); следовательно для Players
должно быть:
[XmlElement("Player")]
public Player[] Players { get; set; }
хотя лично я бы предпочел:
private readonly List<Player> players = new List<Player>();
[XmlElement("Player")]
public List<Player> Players { get { return players; } }
(т. Е. Нет set
и список вместо массива)
или даже ленивый экземпляр:
private List<Player> players;
[XmlElement("Player")]
public List<Player> Players {
get { return players ?? (players = new List<Player>()); }
}