2015-07-07 4 views
2

Я пытаюсь десериализовать xml с XmlSerializer, и я получаю InvalidOperationException: не ожидалось. Вот файл XML:Ошибка Deserializing xml-файл с XmlSerializer

<?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

Там вы пару проблем с XML: формат сериализации

  1. массива неправильно для XmlSerializer - имя элемента должно быть ArrayOfPlatform вместо ArrayOfplatform. (в верхнем регистре P)
  2. platform.moveSpeed является приватным в вашем классе и не может быть сериализован или десериализован XmlSerializer.
  3. positionX, positionY имеют тип float (value-type) и не могут иметь пустые значения в XML. Должно быть 0.

Устраните это, все остальное в порядке.

+0

Спасибо, кажется, работает сейчас! –

Смежные вопросы