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 に答える