XML-Serialisieren in String (und zurück)

Ein Objekt kann in XML serialisiert werden. Auf die Rahmenbedingung, was serialisiert werden kann und was nicht, gehe ich jetzt mal nicht ein. (Hoffentlich kann ich das mal aufarbeiten und auch posten.)

Folgender Code serialisiert und deserialisiert ein Objekt mit dem XmlSerializer. Damit der serialisierte String (XML) auch über Webservices problemlos transferiert werden kann, wird der String zu Base64 codiert.

Forumsbeitrag


#region Serialisierung ReportPublication[] serializeObject = publications.ToArray();

// Serialisierung
MemoryStream serializeMStream = new MemoryStream();
XmlTextWriter xmlWriter = new XmlTextWriter(serializeMStream, Encoding.UTF8);
XmlSerializer serializer = new XmlSerializer(typeof(ReportPublication[]));
serializer.Serialize(xmlWriter, serializeObject);

// String erzeugen und Base64 codieren
serializeMStream.Seek(0, 0);
string theString = Convert.ToBase64String(serializeMStream.GetBuffer(), 0, (int)serializeMStream.Length);

#endregion

#region Deserialisierung

MemoryStream deserializeMStream = new MemoryStream();
ReportPublication[] deserializedObject = null;

// Base64 Decodierung
byte[] byteArray = Convert.FromBase64String(theString);
deserializeMStream = new MemoryStream(byteArray);
deserializeMStream.Seek(0, 0);

// Deserialisierung
XmlTextReader xmlReader = new XmlTextReader(deserializeMStream);
XmlSerializer deserializer = new XmlSerializer(typeof(ReportPublication[]));
deserializedObject = (ReportPublication[])deserializer.Deserialize(xmlReader);
xmlReader.Close();

#endregion

Hier noch zur Archivierung: Artikel:XML-Serialisieren Grundtechnik

Leave a Reply

  

  

  

*