Мне предоставлен файл WSDL для приложения VB 2005.NET, и я сгенерировал файл .vb с помощью команды wsdl с помощью командной строки Visual Studio. Я могу подключиться к этому веб-сервису и отправить ему данные, используя сложный тип, предоставляемый WSDL, несколькими способами. Любой из методов, которые возвращают тип int или string, работает нормально.
Любой из методов, которые возвращают сложный тип, возвращает XML-ошибки, когда происходит сериализация. Я не могу понять, как на самом деле увидеть XML, возвращаемый веб-службой, поскольку он не позволит мне пройти через него.
System.InvalidOperationException = {"Ошибка в XML-документе (10, 53)."}
Это звонок:
'''<remarks/>
<System.Web.Services.Protocols.SoapRpcMethodAttribute("http://www.sample.com/RetrieveUsersStatuses", RequestNamespace:="http://www.sample.com", ResponseNamespace:="http://www.sample.com")> _
Public Function RetrieveUsersStatus(ByVal authToken As String, ByVal ids() As String) As <System.Xml.Serialization.SoapElementAttribute("statuses")> Userstatus()
Dim results() As Object = Me.Invoke("RetrieveUsersStatus", New Object() {authToken, ids})
Return CType(results(0),Userstatus())
End Function
РЕДАКТИРОВАТЬ: я могу перейти в проект после снятия флажка «Включить только мой код», где приводит меня к этой ошибке
Cannot assign object of type System.Xml.XmlNode[] to an object of type ...
Кажется, что у многих людей возникает похожая проблема, когда они пытаются использовать PHP WSDL в веб-сервис, используя .NET.