使用 XmlSerializer 反序列化 xml 文件时出错

Error Deserializing xml file with XmlSerializer

我正在尝试使用 XmlSerializer 反序列化一个 xml,然后我得到 InvalidOperationException:不是预期的。 这是 xml 文件:

<?xml version="1.0" encoding="us-ascii"?>
    <ArrayOfplatform xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <platform>
    <positionX></positionX>
    <positionY></positionY>
    <moveSpeed>10</moveSpeed>
    <ID>1</ID>
  </platform>
</ArrayOfplatform>

还有 类

public class platform : gameElement 
{
    //[Serializable] 
    private float moveSpeed;
    public int ID;
}
public class gameElement
{   
    //[Serializable]
    public float positionX, positionY;
}

如果重要的话,我正在尝试阅读有关使用 Unity 制作的平台游戏的资料。

你的 XML 有几个问题:

  1. XmlSerializer 的数组序列化格式错误 - 元素名称应为 ArrayOfPlatform 而不是 ArrayOfplatform。 (大写 P)
  2. platform.moveSpeed 在您的 class 中是私有的,不能用 XmlSerializer.
  3. 序列化或反序列化
  4. positionX, positionYfloat 类型(值类型)并且 XML 中不能有空值。应该是 0.

解决这个问题,其他一切都很好。