Serialisieren / Deserialisieren XML

30/01/2008 - 10:21 von Markus Renezeder | Report spam
Hallo Leute,
ich brauch wieder mal eure Hilfe ...

Ich habe ein Objekt, welches ich serialisieren möchte. Dieses
Object enthàlt eine Collection mit weiteren Objekten. Diese können nicht
automatisch serialisiert werden, also hab ich das Interface
"System.Xml.Serialization.IXmlSerializable" implementiert. Das Serialisieren
funktioniert jetzt auch. Ich speicher den XML-String in eine Datenbank.
Allerdings hab ich jetzt ein Problem beim deserialisieren. Hier
mal meine Funktion:


Public Shared Function Load(ByVal pString As String) As Object
Dim myObject As New Object
Dim XS As New Xml.Serialization.XmlSerializer(myObject.GetType)
Dim myStream As New System.IO.MemoryStream
Dim myStreamWriter As New System.IO.StreamWriter(myStream)

myStreamWriter.Write(pString)

myObject = XS.Deserialize(myStream)

Return myObject
End Function
Jetzt bekomm ich aber in der Zeile

myObject = XS.Deserialize(myStream)

einen Fehler "Fehler im XML-Dokument (0,0).

Wenn ich statt dem Memory-Stream einen File-Stream hab, dann
bekomm ich die Fehlermeldung "Fehler im XML-Dokument (2,2)"

Hier ist mal so ein XML-String:

<?xml version="1.0"?>
<cReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>test</Name>
<Type>eRechnung</Type>
<Seitenbreite>827</Seitenbreite>
<Seitenhoehe>1169</Seitenhoehe>
<RandLinks>100</RandLinks>
<RandRechts>100</RandRechts>
<RandOben>100</RandOben>
<RandUnten>100</RandUnten>
<SeitenkopfAnzeigen>true</SeitenkopfAnzeigen>
<SeitenfussAnzeigen>true</SeitenfussAnzeigen>
<SeitenkopfHoehe>50</SeitenkopfHoehe>
<SeitenfussHoehe>50</SeitenfussHoehe>
<ControlsSeitenkopf />
<ControlsDetail>
<ctrlDesignerObject>
<DesignerObject>
<Type>8</Type>
<Location>44;24</Location>
<Size>96;28</Size>
<ObjectPropertys>
<Backcolor>0</Backcolor>
<FontName>Tahoma</FontName>
<FontSize>12</FontSize>
<FontBold>False</FontBold>
<FontItalic>False</FontItalic>
<FontUnderline>False</FontUnderline>
<Forecolor>-16777216</Forecolor>
<Name />
<Text>Das ist ein Test</Text>
</ObjectPropertys>
</DesignerObject>
</ctrlDesignerObject>
<ctrlDesignerObject>
<DesignerObject>
<Type>8</Type>
<Location>44;24</Location>
<Size>96;28</Size>
<ObjectPropertys>
<Backcolor>0</Backcolor>
<FontName>Tahoma</FontName>
<FontSize>12</FontSize>
<FontBold>False</FontBold>
<FontItalic>False</FontItalic>
<FontUnderline>False</FontUnderline>
<Forecolor>-16777216</Forecolor>
<Name />
<Text>Das ist ein Test</Text>
</ObjectPropertys>
</DesignerObject>
</ctrlDesignerObject>
</ControlsDetail>
<ControlsSeitenfuss />
</cReport>

Ich hoffe, Ihr könnt mir weiterhelfen.

Danke schon mal

Markus
 

Lesen sie die antworten

#1 Peter Fleischer
30/01/2008 - 11:41 | Warnen spam
"Markus Renezeder" schrieb im Newsbeitrag
news:

Ich habe ein Objekt, welches ich serialisieren möchte. Dieses
Object enthàlt eine Collection mit weiteren Objekten. Diese können nicht
automatisch serialisiert werden, also hab ich das Interface
"System.Xml.Serialization.IXmlSerializable" implementiert. Das
Serialisieren funktioniert jetzt auch. Ich speicher den XML-String in eine
Datenbank.
Allerdings hab ich jetzt ein Problem beim deserialisieren. Hier
mal meine Funktion:


Public Shared Function Load(ByVal pString As String) As Object
Dim myObject As New Object



Hi Markus,
die Werte in deiner XML-Datei passen nicht zum Typ!

Nimm heir passend:

Dim myObject As New cReport

...
<cReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
...




Viele Gruesse

Peter

Ähnliche fragen