2013-05-11 3 views
3

Я пытаюсь десериализации XML, но я получаю эту ошибку:XML сериализации Ошибка

Невозможно создать временный класс (результат = 1).

error CS0030: Cannot convert type 'responseReturnSalesOrder[]' to 'responseReturnSalesOrder'

error CS0029: Cannot implicitly convert type 'responseReturnSalesOrder' to 'responseReturnSalesOrder[]'

Мой xml содержит элемент, который называется, и кажется, что я не могу его разобрать.

XML здесь:

http://pastebin.com/3HD15Syv

класс Proxy здесь:

http://pastebin.com/M8HP7k9s

Я нашел странный код:

/// <remarks/> 
[System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] 
[System.Xml.Serialization.XmlArrayItemAttribute("salesOrder", typeof(responseReturnSalesOrder), Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)] 
public responseReturnSalesOrder[][] @return { 
    get { 
     return this.returnField; 
    } 
    set { 
     this.returnField = value; 
    } 
} 

Вот мой код:

StringReader _InXml = new StringReader(responseData); 
XmlSerializer _oxs = new XmlSerializer(typeof(response)); 
response _Response = new response(); 
_Response = (response)_oxs.Deserialize(_InXml); 
+0

Если вы попытаетесь удалить двойную '[] []' она работает (из всех ссылок)? Иногда я сталкиваюсь с этой проблемой при создании файла сопоставления с использованием XML. – webnoob

+1

Примечание: Когда я говорю remove, измените его на один символ '[]'. – webnoob

+0

Это сработало спасибо! –

ответ

3

Вопрос заключается в том, что public responseReturnSalesOrder[][] не должен быть многомерным массивом.

Измените его на public responseReturnSalesOrder[], и он должен работать. Я обнаружил, что эта проблема возникает при создании файлов сопоставления с использованием xsd.exe из XML/XSD.