4

我正在尝试反序列化 XML,但收到此错误:

无法生成临时类(结果=1)。

错误 CS0030:无法将类型“responseReturnSalesOrder[]”转换为“responseReturnSalesOrder”

错误 CS0029:无法将类型“responseReturnSalesOrder”隐式转换为“responseReturnSalesOrder[]”

我的 xml 包含一个名为的元素,看来我无法解析它。

XML 在这里:

http://pastebin.com/3HD15Syv

代理类在这里:

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);
4

1 回答 1

4

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

将其更改为public responseReturnSalesOrder[],它应该可以工作。我发现使用 XML / XSD 中的 xsd.exe 创建映射文件时会发生此问题。

于 2013-05-11T21:42:13.310 回答