Webservice deserialisieren von einem Base64 String

12/09/2009 - 18:59 von Gerrit Corsmeyer | Report spam
Hallo zusammen..

Ich habe ein kleines problem was ich gerade nicht richtig verstehe warum es
nicht funktioniert.

Nach vielen versuchen einen webservice zu basteln, der mir komplexe
datentypen und auch binàrdaten verarbeiten kann stosse ich immer wieder an
das problem das meine Objeckte immer wieder eine unterschiedliche signatur
zum Webservice haben.
Okay den Trick die Proxyklasse im Webservice zu löschen, und die verweise
auf meine DLL referenz zu legen klappt... manchmal..

Um dies komplett zu umgehen war meine überlegung die Objeckte zu
serialiesieren, in ein Base64 zu Convertieren, und am Webservice diese wieder
zurückzukonvertieren und zu deserialiesieren. Somit würde mir das Löschen der
Proxyklasse im service erspaart bleiben, und könnte in einem einzigen string
meine Komplexen Daten verarbeiten.

Das Konvertieren funktioniert so weit, aber ich bekomme sie leider nicht
zurückkonvertiert, und hoffe das mir hier jemand ein wenig auf die sprünge
helfen kann. Bei der deserialiesierung bekomme ich "Fehler im XML-Dokument
(1,1)."

'Funktioniert
Public Function XMLSerializeMSToString(Of T)(ByVal Obj As Object) As
String
Dim MS As New System.IO.MemoryStream
Dim XML As New System.Xml.Serialization.XmlSerializer(GetType(T))
XML.Serialize(MS, Obj)
MS.Seek(0, System.IO.SeekOrigin.Begin)
Dim sr As New System.IO.StreamReader(MS)
Dim Str As String = sr.ReadToEnd()
sr.Close()
Return
System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(Str))
End Function

'funktioniert leider nicht
Public Function XMLDeSerializeMSFromString(Of T)(ByVal DataObjectString As
String) As Object
Dim MS As New System.IO.MemoryStream

MS.Write(System.Text.ASCIIEncoding.ASCII.GetBytes(System.Convert.ToString(DataObjectString)), 0, DataObjectString.Length)
MS.Seek(0, System.IO.SeekOrigin.Begin)
Dim XML As New System.Xml.Serialization.XmlSerializer(GetType(T))
Dim RetObj As Object = XML.Deserialize(MS)
Return RetObj
End Function


Ganz lieben dank im vorraus..
Gerrit
 

Lesen sie die antworten

#1 Peter Fleischer
12/09/2009 - 20:23 | Warnen spam
"Gerrit Corsmeyer" schrieb im Newsbeitrag
news:

...
Das Konvertieren funktioniert so weit, aber ich bekomme sie leider nicht
zurückkonvertiert, und hoffe das mir hier jemand ein wenig auf die sprünge
helfen kann. Bei der deserialiesierung bekomme ich "Fehler im XML-Dokument
(1,1)."



Hi Gerrit,
hast du auch wirklich den gleichen Typ zum Deserialisieren genutzt, den du
auch zum Serialisieren genutzt hast? Eine identische Deklaration das Typs im
Client geht nicht. Du musst den Typ auch über XMLInclude vom WebService
bereitstellen und dann über von generierten Proxy nutzen.

Viele Grüsse
Peter

Ähnliche fragen