NET веб-сервис от VB6. В VB6 я использую SoapClient30 (библиотека типов MS SOAP).
Веб-метод имеет эту подпись:
[WebMethod]
public List<List<string>> SomeMethod(string [] args){}
Возвращаемый XML в SOAP выглядит так:
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://icz.sk/">
<ArrayOfString>
<string>1</string>
<string>2</string>
<string>3</string>
<string>4</string>
<string>5</string>
</ArrayOfString>
<ArrayOfString>
<string>1</string>
<string>2</string>
<string>3</string>
<string>4</string>
<string>5</string>
</ArrayOfString>
</ArrayOfArrayOfString>
Для инициализации SoapClient30 я использую WSDL.
Когда я вызываю веб-метод сверху, я получаю в VB6 это исключение:
SoapMapper:Restoring data into SoapMapper ArrayOfString failed HRESULT=0x8007000E
SoapMapper:Restoring data into SoapMapper SomeMethod failed HRESULT=0x8007000E
Client:Unspecified client error. HRESULT=0x8007000E:
Я думаю, что SoapClient30 не знает, как десериализовать XML-ответ на код VB6.
Я пытаюсь сохранить результат веб-метода в Variant.
Private proxy As SoapClient30
Dim result As Variant
Dim input_param(0 To 2) As String
proxy.MSSoapInit WSDL_PATH
input_param(0) = arg1
input_param(1) = arg2
input_param(2) = ""
result = proxy.SomeMethod()
Что нужно для изменения ответа веб-метода или типа для ответа магазина в VB6?
Я должен использовать библиотеку типов SOAP, я могу использовать COM. Спасибо за ответы