在C#中使用webservice返回数组

时间:2014-11-19 12:32:41

标签: c# web-services

我在ADVPL中开发了两个web服务,这些服务将在我的应用程序中使用VS#13(Windows窗体)在C#中使用。

第一个总是返回一个字符串并且工作正常,但第二个并返回一个我根本不能消耗的数组。

这不是连接问题,因为如果我更改第二个webservice以返回一个字符串,一切正常,但不能在Visual Studio 2013中作为数组。

他正在给我回复“无法隐式转换类型”错误。

遵循发布的webservice方法并生成错误:

WEBSERVICE REQUEST:

<?xml version="1.0" encoding="utf-8"?"
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
   <_CFILIAL>STRING</_CFILIAL>
</soap:Body>
</soap:Envelope>

WEBSERVICE RESPONSE

<?xml version="1.0" encoding="utf-8"?"
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
   <TARRAY>
      <TESTEARRAY>
         <_CCONTIGENCIA>STRING</_CCONTIGENCIA>
         <_CDIGITAL01>STRING</_CDIGITAL01>
         <_CDIGITAL02>STRING</_CDIGITAL02>
         <_CMATRICULA>STRING</_CMATRICULA>
         <_CNOME>STRING</_CNOME>
         <_CSITUACAO>STRING</_CSITUACAO>
      </TESTEARRAY>
      <TESTEARRAY>
         <_CCONTIGENCIA>STRING</_CCONTIGENCIA>
         <_CDIGITAL01>STRING</_CDIGITAL01>
         <_CDIGITAL02>STRING</_CDIGITAL02>
         <_CMATRICULA>STRING</_CMATRICULA>
         <_CNOME>STRING</_CNOME>
         <_CSITUACAO>STRING</_CSITUACAO>
      </TESTEARRAY>
   </TARRAY>
</soap:Body>
</soap:Envelope>

CONSUMINDO:

WS_FUNCSPONTO.FUNCSPONTO Recebe_Cadastro = new WS_FUNCSPONTO.FUNCSPONTO();
WS_FUNCSPONTO.TESTEARRAY qwert = new WS_FUNCSPONTO.TESTEARRAY();
qwert = Recebe_Cadastro.PEGAINFORM("00");

错误:错误1无法将类型'Relogio_Ponto.WS_FUNCSPONTO.TESTEARRAY []'隐式转换为'Relogio_Ponto.WS_FUNCSPONTO.TESTEARRAY

1 个答案:

答案 0 :(得分:0)

我猜因为有多个元素它被视为数组。试试这个:

WS_FUNCSPONTO.TESTEARRAY[] qwert = new WS_FUNCSPONTO.TESTEARRAY[10];
qwert = Recebe_Cadastro.PEGAINFORM("00");

不是在单个元素中获取响应,而是在数组中接收它。