Hallo, ich möchte einen Webservice mit VB einbinden und habe dazu eine URL(WSDL-Datei) bekommen. WSDL.exe erstellt auch automatisch eine Code-Datei (VB). Leider habe ich aber ein Problem mit einer bestimmten Eigenschaft, da diese wohl im XML-dokument als XmlArray (SOAP) deklariert ist und Visual Studio 2010 dies nicht richtig umsetzt.
Was muß ich nun in der generierten Datei ändern, bzw in meinem eigenen Code um diese Eigenschaft richtig zu übermitteln? Ich hoffe ich bin einigermassen verständlich rübergekommen.
Hier ein Auszug aus der WSDL: ListOfSMEAdress wird gar nicht generiert!
<System.Xml.Serialization.XmlIncludeAttribute(GetType(DeliverSMSData)), _ System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.225"), _ System.SerializableAttribute(), _ System.Diagnostics.DebuggerStepThroughAttribute(), _ System.ComponentModel.DesignerCategoryAttribute("code"), _ System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http//##########")> _ Partial Public Class SMSData
Private bindingField As BindingData
Private smsLengthField As Integer
Private smsTextField As String
Private sourceAddressField As String
Private registeredDeliveryFlagField As Boolean
Private requestTypeField As String
Private numberOfDestinationsField As Integer
Private destinationAddressesField() As SMEAddressData Private destinationFlagField As Integer
....
'''<remarks/> <System.Xml.Serialization.XmlArrayItemAttribute("smeaddress", IsNullable:=False)> _ Public Property destinationAddresses() As SMEAddressData() Get Return Me.destinationAddressesField End Get Set(value As SMEAddressData()) Me.destinationAddressesField = value End Set End Property
Ich bin zwar nicht 100% sicher, aber eigentlich sieht es gut aus. Die Eigenschaft "destinationAddresses" ist ein Array von SMEAddressData. ListOfSMEAddressData wird nicht generiert, da es eben ein Array ist. Oder habe ich was falsch verstanden?
'hier kommt schon der Fehler (Destadress): "Der Wert vom Typ "TestApp.WebReference.SMEAddressData" kann nicht in "1-dimensionales Array von TestApp.WebReference.SMEAddressData" konvertiert werden."
Daher muß ich wohl Destinationadresses als Mehrdimensional declarieren ??
Dim list As List(Of SMEAddressData) = New List(Of SMEAddressData) list.Add(destAddress) Service.destinationAddresses = list.ToArray()
Oder
Service.destinationAddresses = New SMEAddressData() {destAddress}
In deinem Beispiel ist "Destadress" vom Typ SMEAddressData und "Service.destinationAddresses" ist ein 1-Dimensional Array. Du musst also keinen mehrdimensionalen Array haben.
Oder habe ich was falsch verstanden?