Web サービスにクエリを実行し、応答として結果セットを取得する .NET c# Web サービス クライアントを作成しています。
このクライアントを使用して Web サービスにクエリを実行すると、結果セットが返されますが、一部のセットしか返されません。SOAPUI を介して呼び出された同じ Web サービスは 58 レコードを返しますが、.NET クライアントでは 5 しか返されません。58 は予想されるレコード数であり、.NET クライアントから要求を行う際にフィルターを適用していません。
.NET クライアントによって受信されたこれらの 5 つのレコードには、xsi:nil="true" で返される要素の 1 つがあります。結果セットの XSD には、nillable プロパティが含まれており、この要素に対して true になります。
SOAP UI で要求と応答の両方を検証しましたが、これらは正常に検証されました。
.NET クライアントが完全なデータを受信できない理由がわからない。何かご意見は?
更新: .NET で生成された参照クラスには、XSD で isnullable としてマークされた要素に対して [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] がありました。そのため、投稿オブジェクトを作成すると、この要素が自動的に追加されました。これは post the object の一部であるため、Web サービスはこれをフィルター条件として扱い、xsi:nill=true のレコードを返します。問題は解決しました。サポートしてくれてありがとう。