C# 使用.net代理调用web服务时获取空数组,但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

我正在使用第三方XML SOAP web服务,使用svcutil.exe生成.net代理类,但调用方法时响应对象中未填充数组

我使用了一些网络HTTP嗅探器来获取XML响应,我注意到数组在XML中是正常的,但是在响应对象中它们是空的,我尝试编辑服务的WSDL文件来解决问题,但没有成功

编辑: 编辑WSDL并将其放在我自己的主机上,并从VS添加了一个服务引用,但将端点的URL留下来引用主要的第三方服务

有谁能帮助我在WSDL中做出正确的更改,以满足我从外部web服务得到的响应吗

我使用SmartSniff得到的响应XML是:

.
.
.
.
<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>
.
.
.
.