使用 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 有几个问题:
XmlSerializer
的数组序列化格式错误 - 元素名称应为 ArrayOfPlatform
而不是 ArrayOfplatform
。 (大写 P)
platform.moveSpeed
在您的 class 中是私有的,不能用 XmlSerializer
. 序列化或反序列化
positionX, positionY
是 float
类型(值类型)并且 XML 中不能有空值。应该是 0
.
解决这个问题,其他一切都很好。
我正在尝试使用 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
在您的 class 中是私有的,不能用XmlSerializer
. 序列化或反序列化
positionX, positionY
是float
类型(值类型)并且 XML 中不能有空值。应该是0
.
解决这个问题,其他一切都很好。