我正在尝试使用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制作的平台游戏。
答案 0 :(得分:1)
您的XML存在以下几个问题:
XmlSerializer
的数组序列化格式错误 - 元素名称应为ArrayOfPlatform
而不是ArrayOfplatform
。 (大写P)platform.moveSpeed
在您的课程中是私密的,无法使用XmlSerializer
序列化或反序列化。positionX, positionY
的类型为float
(值类型),并且XML中不能包含空值。应该是0
。修正一下,其他一切都很好。