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