Visual Studioの「サービス参照の追加」ツールを使用してSOAPサービスを使用しようとしています。サービスのWSDLで定義された型の解析を許可するためにSOAP応答で無効なXSDプロパティタイプをオーバーライドする方法はありますか?
一つは、次のプロパティがあります。
:このプロパティの値がnullであるためにデータを要求するときに<xsd:element name="paymentDate" type="xsd:dateTime" />
はしかし、それはのように生のXMLで返されます私は茶へのSOAPサービスのバグを修正することはできませんFormatException: The string '' is not a valid AllXsd value.
:XMLをデシリアライズされ、次の例外が発生し
<paymentDate xsi:type="xsd:dateTime"/>
XML応答(正しい場合は、xsd:nil
をタイプとして使用する必要があります)を設定します。
例外がスローされず、少なくとも文字列としてプロパティ値にアクセスできるようにするには、どのような回避策を講じてください。
XMLレスポンスの逆シリアル化を無効にする方法はありますか? Reference.cs
ファイル内の対応するプロパティタイプをDateTime
からstring
に変更することは役に立ちません(デシリアライザはXML応答に存在するタイプ情報を使用しているようです)。
Reference.cs
からプロパティを削除した場合、例外はスローされませんが、必要なプロパティ値にアクセスできません。
_ _「Reference.csファイル内の文字列へのDateTimeから対応するプロパティのタイプを変更すると、助けにはなりません」 - これは、プロキシを再生成するとき、それが動作するはず原因になりますトラブルがなければ。これを実行し、再コンパイルしてサービスを呼び出すと、正確に何が起こりますか? – CodeCaster
@CodeCaster私はまったく同じ例外を受け取ります:/これが助けにならないと言いました。プロパティを削除した場合にのみ、例外が(プロパティ値と共に)消えてしまいます。 –
WSDLのローカルコピーを変更しようとしましたか? – ThomasRS