Построение функции в веб-сервисе VB.net SOAP для получения массива - PullRequest
1 голос
/ 04 августа 2011

У меня есть конкретная проблема, на которую я еще не нашел ответа. По сути, мне нужно передать список чисел в функцию, выполнить некоторые математические операции и вернуть их. Я могу передать одно число за раз без проблем, однако, когда я хочу передать в массиве, я начинаю иметь проблемы.

Мой код VB.net выглядит следующим образом ...

<WebMethod()> _
Public Function ArrayTest(test As Double) As Double()
    Return test
End Function

Я проверяю это, используя Python с SUDS в качестве моего SOAP-клиента. Вот XML

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
  xmlns:ns0="http://tempuri.org/"
  xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <ns1:Body>
      <ns0:ArrayTest>
        <ns0:test>603</ns0:test>
        <ns0:test>603</ns0:test>
        <ns0:test>607</ns0:test>
        <ns0:test>609</ns0:test>
      </ns0:ArrayTest>
    </ns1:Body>
</SOAP-ENV:Envelope>

Я установил точку останова в коде и посмотрел на входные значения тестовой переменной, а размер массива всегда остается равным нулю. Я пробовал ParamArray, List и несколько других вещей, но мне не повезло. Конечно, если я не указываю входные данные как массив, он берет первый элемент, переданный из запроса SOAP, и возвращает его, но я бы хотел вернуть все элементы обратно.

Вот еще кое-что, что я пытался реализовать. Я уверен, что это что-то простое, я довольно новичок в программировании в целом. Ссылка по теме

1 Ответ

2 голосов
/ 04 августа 2011

Согласно вашему коду:

Public Function ArrayTest(test As Double) As Double()

ArrayTest получает Double и возвращает массив Double.Может быть, вы должны просто изменить свою подпись?Также по предоставленной вами ссылке:

Public Function GetObjectValues(ByVal objIds As List(Of String), ByVal objProperty As String) As List(Of String)

Посмотрите на параметр objIds - List - альтернативный вариант для Array.

...