使用 C# 中返回数组的 Web 服务

本文关键字:Web 服务 数组 返回 使用 | 更新日期: 2023-09-27 18:30:56

我有两个用ADVPL开发的Web服务,它们将在带有VS2013(Windows表单)的C#应用程序中使用。

第一个总是返回一个字符串并且工作正常,但第二个返回一个我根本无法使用的数组。

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

他向我返回"无法隐式转换类型"错误。

遵循已发布的 Web 服务和生成的错误的方法:

网络服务请求:

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

网络服务响应

<?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");

ERRO:错误 1 无法隐式转换类型"Relogio_Ponto.WS_FUNCSPONTO。TESTEARRAY[]' to 'Relogio_Ponto.WS_FUNCSPONTO.测试阵列

使用 C# 中返回数组的 Web 服务

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

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

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