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

时间:2015-07-07 06:21:52

标签: c# xml xml-serialization 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制作的平台游戏。

1 个答案:

答案 0 :(得分:1)

您的XML存在以下几个问题:

  1. XmlSerializer的数组序列化格式错误 - 元素名称应为ArrayOfPlatform而不是ArrayOfplatform。 (大写P)
  2. platform.moveSpeed在您的课程中是私密的,无法使用XmlSerializer序列化或反序列化。
  3. positionX, positionY的类型为float(值类型),并且XML中不能包含空值。应该是0
  4. 修正一下,其他一切都很好。