我正在尝试使用 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 有几个问题:
XmlSerializer
的数组序列化格式错误 - 元素名称应为ArrayOfPlatform
而不是ArrayOfplatform
。 (大写 P)platform.moveSpeed
在您的类中是私有(private)的,不能使用XmlSerializer
进行序列化或反序列化。positionX, positionY
是float
类型(值类型),在 XML 中不能有空值。应为0
。
修复它,其他一切都很好。
关于c# - 使用 XmlSerializer 反序列化 xml 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31261195/