2013-05-11 62 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 2013-05-11 21:33:18

+1

注意:当我说删除时,将其更改为单个'[]'。 – webnoob 2013-05-11 21:34:21

+0

这工作谢谢! – 2013-05-11 21:40:07

回答

3

问题是public responseReturnSalesOrder[][]不应该是一个多维数组。

更改为public responseReturnSalesOrder[]它应该工作。我发现这个问题发生在使用XML/XSD的xsd.exe创建映射文件时。