Hej Har du "markerat" upp din klass som Serializable? Något jag själv brukar glömma :) Varför retunerar du inte en array av ArbetsstalleData? HejProblem med webservice
Jag får inte min webservice att fungerar när jag skickar en lista med värden. Jag hämtar organisationsnummer, namn, adress m.m. för företag som jag lägger i en class ArbetsstalleData.
Denna class lägger jag till i en arraylist som jag sen skickar när jag hämtat alla.
Jag har gjort detta förut i ASP.NET för webben men nu gör jag en applikation på datorn i VB.NET.
Nu får jag en felkod och vet inte hur jag kommer vidare. m.a.o. har jag kört rejält fast.
Naturligtvis är det tidspress också.
Nedan följer felbeskrivning och kodning.
Felkod:
{"Error in line 1 position 330. Element 'http://xxx.Orgnr.se/:anyType' contains data of the 'http://xxx.Orgnr.se/:ArbetsstalleData' data contract. The deserializer has no knowledge of any type that maps to this contract. Add the type corresponding to 'ArbetsstalleData' to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding it to the list of known types passed to DataContractSerializer."}
Webservicen kod:
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml
Imports System.Xml.Schema
Imports System.Xml.Serialization
<WebService(Namespace:="http://xxx.Orgnr.se/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1), XmlInclude(GetType(ArbetsstalleData)), SoapInclude(GetType(ArbetsstalleData))> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class myInfoWeb
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function getFilialer(ByVal Orgnr As String) As ArrayList
Dim _FilialData As New ArbetsstalleData
Dim mySvar As New ArrayList
Dim _svar As New HuvudkontorFilialResultat
Dim _Onyckel As String = ""
Dim _Namn As String = ""
Dim _NamnHK, _AdressHK, _PostnrHK, _OrtHK As String
Dim Count1 As Integer = 0
Dim Count2 As Integer = 0
Do
Try
_svar = extTjanst.FilialFraga(Orgnr)
For Each item As filial In _svar.filial
_FilialData = New ArbetsstalleData
Try
_FilialData.Orgnr = item.Personnummer
_FilialData.Namn = item.Namn
Catch ex As Exception
End Try
mySvar.Add(_FilialData)
Next
Catch ex As System.ServiceModel.FaultException
End Try
Return mySvar
End Function
Min kod i VB applikationen.
Dim _svar As New myInfoWeb.ArrayOfAnyType
_svar = myInfotorg.getFilialer(orgnr, InfotorgUser2, InfotorgPass2)
Felet blir i sista raden.
Stort tack på förhand för en lösning på detta.
/ClasseSv: Problem med webservice
Är inte helt säker på hur vb.net syntaxen ser ut men hittade denna länk som verkar förklara en hel del:
http://msdn.microsoft.com/en-us/library/564k8ys4(VS.80).aspx
Hoppas detta är till någon hjälp!Sv: Problem med webservice
Public Function getFilialer(ByVal Orgnr As String) As ArbetsstalleData()
Dim _FilialData As New ArbetsstalleData
Dim mySvar As New System.Collections.Generic.List(Of ArbetsstalleData)
Dim _svar As New HuvudkontorFilialResultat
_svar = extTjanst.FilialFraga(Orgnr)
For Each item As filial In _svar.filial
_FilialData = New ArbetsstalleData
_FilialData.Orgnr = item.Personnummer
_FilialData.Namn = item.Namn
mySvar.Add(_FilialData)
Next
Return mySvar.ToArray()
End Function
Dessutom kan du istället för en ArrayList använda System.Collections.Generic.List(Of ArbetsstalleData) för att förenkla tillägning och retunering av arrayen.
Sv:Problem med webservice
Tack för era svar. Jag lade min array i en class vilket blev renare då jag behövde variabler som bara skulle skickas en gång, dvs gälla för hela arrayen.
/Classe