3

Web参照として定義されているリモートXMLSOAPWebサービスを呼び出す.NETクライアントについて考えてみます。クライアントはサービスを呼び出し、戻りXMLをオブジェクトに逆シリアル化しようとしています。

Webメソッドは正しく実行されており、サービスから返されるXMLは整形式であり、Fiddlerで確認されています。Webサービスは、別のクライアント(.NET 2.0)が問題なく使用しているため、正常に機能することがわかっています。

.NET Webサービスプロキシクラスが返されたXMLを逆シリアル化しようとすると、次のエラーがスローされます。

System.InvalidOperationException:XMLドキュメントにエラーがあります(1、1999)。---> System.Xml.XmlException:'EndElement'は無効なXmlNodeTypeです。
1行目、1999年の位置。Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader_PRPA_AR101202_Service.Read135_MCCI_MT000200LocatedEntity(Boolean isNullable、Boolean checkType) のSystem.Xml.XmlReader.ReadStartElement( )

不平を言っているXML応答の行/列(1,1999)は次/</device>とおりです。

<sender>
   <device>
      ..snip..
      <location classCode="IDENT" realmCode="xyz" />
   </device>

.NET逆シリアル化でこの問題を解決するにはどうすればよいですか?

解決策のない解決策の試み/詳細情報:

4

2 に答える 2

1

スタックトレースの2行目は、xmlプロセッサlocatedEntityが2番目の要素内の要素を予期していることを示していdeviceます。そのような要素がないと推定できる最も早い位置は、その要素の終了タグですdevice

名前空間のスキーマドキュメントを見てください"urn:hl7-org:v3"; location?の代わりに誤って使用された可能性がありますかlocatedEntity

于 2013-03-07T17:16:59.767 に答える
0

.configの調整を使用して、XMLシリアライザーにレガシー動作を使用させるようにしました。

<configuration>
     <system.xml.serialization> 
        <xmlSerializer  useLegacySerializerGeneration="true" />    
     </system.xml.serialization>
</configuration>

WCF 4.5で既存のXMLシリアル化コードを実行すると、シリアル化または逆シリアル化が失敗する

于 2013-03-07T21:15:02.397 に答える