C# 使用.net代理调用web服务时获取空数组,但xml响应正常
我正在使用第三方XML SOAP web服务,使用svcutil.exe生成.net代理类,但调用方法时响应对象中未填充数组 我使用了一些网络HTTP嗅探器来获取XML响应,我注意到数组在XML中是正常的,但是在响应对象中它们是空的,我尝试编辑服务的WSDL文件来解决问题,但没有成功 编辑: 编辑WSDL并将其放在我自己的主机上,并从VS添加了一个服务引用,但将端点的URL留下来引用主要的第三方服务 有谁能帮助我在WSDL中做出正确的更改,以满足我从外部web服务得到的响应吗 我使用SmartSniff得到的响应XML是:C# 使用.net代理调用web服务时获取空数组,但xml响应正常,c#,.net,web-services,soap,wsdl,C#,.net,Web Services,Soap,Wsdl,我正在使用第三方XML SOAP web服务,使用svcutil.exe生成.net代理类,但调用方法时响应对象中未填充数组 我使用了一些网络HTTP嗅探器来获取XML响应,我注意到数组在XML中是正常的,但是在响应对象中它们是空的,我尝试编辑服务的WSDL文件来解决问题,但没有成功 编辑: 编辑WSDL并将其放在我自己的主机上,并从VS添加了一个服务引用,但将端点的URL留下来引用主要的第三方服务 有谁能帮助我在WSDL中做出正确的更改,以满足我从外部web服务得到的响应吗 我使用SmartS
.
.
.
.
<Summary>
<ID xsi:type="xsd:string">1</ID>
<Name xsi:type="xsd:string">AAA</Name>
<Errors>
<Error>
<Service xsi:type="xsd:string">Orders</Service>
<Details xsi:type="xsd:string">Orders is not OK</Details></Error>
<Error>
<Service xsi:type="xsd:string">Details</Service>
<Details xsi:type="xsd:string">The Details service was selected but but you do not have access to this service</Details>
</Error>
</Errors>
</Summary>
.
.
.
.
。
.
.
.
1.
AAA
命令
订单不好
细节
已选择详细信息服务,但您无权访问此服务
.
.
.
.
WSDL是:
.
.
.
.
<element name="Summary" type="tns:SummaryPart" minOccurs="1" maxOccurs="1"/>
.
.
.
.
<complexType name="SummaryPart">
<sequence>
<element name="ID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="Errors" type="tns:ErrorArray" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="ErrorArray">
<sequence>
<element name="Error" type="tns:ErrorPart" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="ErrorPart">
<sequence>
<element name="Service" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="Details" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
.
.
.
.
。
.
.
.
.
.
.
.
.
.
.
.
我有这些选择,但没有成功:
一,-
。
.
.
.
.
.
.
.
**
**
.
.
.
.
二,-
。
.
.
.
.
.
.
.
****
.
.
.
.
有什么建议吗?您不能“编辑另一个服务的wsdl”并神奇地使该服务返回不同的内容。相反,处理服务以任何形式返回给您的内容,然后将其转换为您需要使用的类型谢谢,您是对的,我不能更改服务返回的内容,但我可以复制WSDL并进行更改,然后将其放在主机上,并将其添加为服务引用,但将URL留给主要的第三方提供商!我认为这是一个合法的骗局,你怎么想!
.
.
.
.
<element name="Summary" type="tns:SummaryPart" minOccurs="1" maxOccurs="1"/>
.
.
.
.
<complexType name="SummaryPart">
<sequence>
<element name="ID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="Errors" type="tns:Errors" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
**<complexType name="Errors">
<sequence>
<element name="Error" type="tns:Error" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="Error">
<sequence>
<element name="Service" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="Details" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>**
.
.
.
.
.
.
.
.
<element name="Summary" type="tns:SummaryPart" minOccurs="1" maxOccurs="1"/>
.
.
.
.
<complexType name="SummaryPart">
<sequence>
<element name="ID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
**<element name="Errors" type="tns:Error" minOccurs="0" maxOccurs="unbounded"/>**
</sequence>
</complexType>
<complexType name="Error">
<sequence>
<element name="Service" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="Details" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
.
.
.
.