2016-12-23 18 views
0

XMLデシリアライズが動作しない - XMLドキュメントに誤りがある(0、0)私は、XMLレスポンスをデシリアライズしようとしているが、私はこれらが私のクラスである</p> <p>ここで働いていないことを理解するように見えることはできません

<m:GSSC.calcolaIupResponse xmlns:m="http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2013-01/calcolaIup/"> 
    <param> 
     <iup>0000W05RNF</iup> 
    </param> 
</m:GSSC.calcolaIupResponse> 

そしてここで、逆シリアル化のためのコードです:(.NET開発者ツールで生成)

[Serializable] 
[XmlType(AnonymousType = true, Namespace = "http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2007-01/calcolaIup/")] 
[XmlRoot("GSSC.calcolaIupResponse", Namespace = "http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2007-01/calcolaIup/", IsNullable = false)] 
public partial class GSSCcalcolaIupResponse 
{ 
    private param1 paramField; 

    /// <remarks/> 
    [XmlElementAttribute(Namespace = "")] 
    public param1 param 
    { 
     get 
     { 
      return this.paramField; 
     } 
     set 
     { 
      this.paramField = value; 
     } 
    } 
} 

/// <remarks/> 
[XmlType(AnonymousType = true)] 
public partial class param1 
{ 
    private string iupField; 

    /// <remarks/> 
    public string iup 
    { 
     get 
     { 
      return this.iupField; 
     } 
     set 
     { 
      this.iupField = value; 
     } 
    } 
} 

XML応答は、このようなものです。

GSSCcalcolaIupResponse iup = new GSSCcalcolaIupResponse(); 
XmlSerializer serializer = new XmlSerializer(typeof(GSSCcalcolaIupResponse)); 

IUPDummyResponse retValue = new IUPDummyResponse(); 

using (TextReader reader = new StringReader(xml)) 
{ 
    if (soapFault == null) 
     iup = (GSSCcalcolaIupResponse)serializer.Deserialize(reader); 
} 
+0

「xml」に実際に表示されたテキストが含まれていることを検証しましたか?通常、空の文字列を逆シリアル化しようとしているために発生したエラーです。 –

+0

@JonSkeetはい、それは正確な文字列を含んでいます – zombiechainsaw

答えて

1

クラスGSSCcalcolaIupResponseのネームスペースとXML文字列のネームスペースが異なります。それが理由です。

- http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2007-01/calcolaIup/ 
- http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2013-01/calcolaIup/ 
+0

答えをありがとう、それはまだ動作しません。例外:ルート要素のエラー – zombiechainsaw

+0

@ zombiechainsaw、私はすでに試してみました。それは働いている。私はクラス定義の2つの名前空間を置き換えるために、xml string 'http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2013-01/calcolaIup/'の名前空間を使用します。注:XmlTypeとXmlRootの両方を変更する –

関連する問題

 関連する問題