使用 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.测试阵列
我想因为有多个元素,它被视为数组。试试这个:
WS_FUNCSPONTO.TESTEARRAY[] qwert = new WS_FUNCSPONTO.TESTEARRAY[10];
qwert = Recebe_Cadastro.PEGAINFORM("00");
不是在单个元素中获取响应,而是在数组中接收它。