none
Как работать с свойствами класса веб-сервиса - Visual Basic .NET RRS feed

  • Вопрос

  • Доброго времени суток.
    При работе с сервисами возникает возникает вопрос как работать с сложными типом?
    Приведу пример.
    Есть сервис "http://ruzditest.eisnot.ru:8280/services/ruzdiUploadNotificationPackageService_v1_0?wsdl" в нем есть класс "ruzdiUploadNotificationPackageService_v1_0"
    Провожу его объявление -

    Dim MethUploadNotification As New ruzdiUploadNotificationPackageService_v1_0
    Данный класс содержит следующий метод "uploadNotificationPackage"
    Метод имеет следующее определение

    Public Function uploadNotificationPackage(ByVal pledgeNotificationPackage As pledgeNotificationPackageType, ByRef packageStateCode As StateType) As <System.Xml.Serialization.XmlElementAttribute("registrationId")> String
    Провожу его определение первого типа и его переменных

    Dim pType As New pledgeNotificationPackageType
    pType.packageId = "fefac464-c8e1-4f40-8278-06f6b42983ce"
    pType.uip = "1000000011975190000008136"
    pType.senderType = "1"
    Но у данного класса имеется еще одна переменная - pledgeNotificationPackageType.pledgeNotificationList
    Данная переменная имеет следующее определение:

    Public Property pledgeNotificationList() As pledgeNotificationListElementType()
     Partial Public Class pledgeNotificationListElementType
            Private notificationIdField As String
            Private documentAndSignatureField() As Byte
            '''<remarks/>
            Public Property notificationId() As String
                Get
                    Return Me.notificationIdField
                End Get
                Set
                    Me.notificationIdField = value
                End Set
            End Property
            '''<remarks/>
            <System.Xml.Serialization.XmlElementAttribute(DataType:="base64Binary")>  _
            Public Property documentAndSignature() As Byte()
                Get
                    Return Me.documentAndSignatureField
                End Get
                Set
                    Me.documentAndSignatureField = value
                End Set
            End Property
        End Class
    Не могу понять как определить переменные notificationId и documentAndSignature

    При этом в данном типе переменные могут встречать до 20 раз. Я так понимаю что-то типа массива. Но не могу понять как их объявить и передать в нужный тип.
    Проект создан в Visual Studio 2013

    Сейчас пробую так работать с объектом

    Dim pType As New pledgeNotificationPackageType
    Dim ListElement As New pledgeNotificationListElementType
    ListElement.notificationId = "27f31b86-8586-4f0e-91af-98e8367dd8dc" 
    pType.pledgeNotificationList(0).notificationId = ListElement.notificationId
    Вылетает исключение Ссылка на объект не указывает на экземпляр объекта.

    Пробую сразу напрямую определить

    pType.pledgeNotificationList(0).notificationId = "27f31b86-8586-4f0e-91af-98e8367dd8dc"
    Вылетает аналогичное исключение Ссылка на объект не указывает на экземпляр объекта.

    Что не так делаю?

    Еще момент можно на вход метода подать xml т.к. фактически обмен идет xml сообщения, чтобы не инициализировать каждую переменную?
    13 июня 2017 г. 11:12

Ответы