XML Stream als ByteArray...

11/01/2009 - 18:26 von Harald Bacik | Report spam
Hallo

Ich versuche ein XML-Document im Speicher zu erstellen & es als Byte
umzuwandeln, damit ich es ohne Zwischenschritt gleich in die DB speichern
kann.
Der Code funktioniert zwar, aber leider ist mein StreamByte immer 0.

Folgender Code wird verwendet:
Dim Stream As System.IO.Stream = New System.IO.MemoryStream
Dim xmlWriter As Xml.XmlWriter
Dim xmlSettings As New Xml.XmlWriterSettings
xmlSettings.Indent = True
xmlWriter = Xml.XmlWriter.Create(Stream, xmlSettings)
With xmlWriter
.WriteStartDocument()
.WriteStartElement("Lagerdaten")
.WriteStartAttribute("Zuordnung")
.WriteValue("01")
.WriteStartAttribute("Menge")
.WriteValue(Me.UsrArtikelEingabe.Menge)
.WriteEndElement()
.WriteEndDocument()
.Close()
'.Flush()
End With

Dim StreamByte As Byte() = New Byte(Stream.Length) {}
Stream.Read(StreamByte, 0, Stream.Length)

Kann mir jemand sagen, warum das so ist... - DANKE
 

Lesen sie die antworten

#1 Christoph Schneegans
11/01/2009 - 20:51 | Warnen spam
Harald Bacik schrieb:

Dim Stream As System.IO.Stream = New System.IO.MemoryStream



Die MemoryStream-Klasse bietet die ToArray-Methode. Einfacher
kannst du einen Stream nicht in ein Byte-Array umwandeln.

Dim StreamByte As Byte() = New Byte(Stream.Length) {}
Stream.Read(StreamByte, 0, Stream.Length)



Das klappt vermutlich deshalb nicht, weil der Stream aufs Ende
positioniert ist. Verwende Stream.Seek(0, SeekOrigin.Begin).

<http://schneegans.de/sv/> · Schema-Validator für XML

Ähnliche fragen