XML-Serialisieren in String
Autor: Dr. Holger Schwichtenberg
' ### XML-Serialisieren in String Function xml_serialize(ByVal obj As Object) As String Dim serializer As New XmlSerializer(obj.GetType) Dim s As String ' --- Serialisieren in MemoryStream Dim ms As New MemoryStream() serializer.Serialize(ms, obj) out("Objekt wurde serialisiert!") ' --- Stream in String umwandeln Dim r As StreamReader = New StreamReader(ms) r.BaseStream.Seek(0, SeekOrigin.Begin) s = r.ReadToEnd ' Alternative: 'Dim b As Byte 'Dim ba As Byte() 'ba = ms.ToArray 'For Each b In ba ' s = s & Convert.ToChar(b) 'Next Return s End Function
using System; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization.Formatters.Soap; using System.Runtime.Serialization; using System.IO; using System.Xml.Serialization; using System.Xml; using System.Data; namespace FCLBuch._System_RuntimeSerialization { // Hilfsfunktionen für Serialisierung public class SerializationHelper { public static string Xml_Serialize(object obj) { // XML-Serialisieren in String XmlSerializer serializer = new XmlSerializer(obj.GetType()); // Serialisieren in MemoryStream MemoryStream ms = new MemoryStream(); serializer.Serialize(ms, obj); FclOutput.PrintOut("Objekt wurde serialisiert!"); // Stream in String umwandeln StreamReader r = new StreamReader(ms); r.BaseStream.Seek(0, SeekOrigin.Begin); return r.ReadToEnd(); } public static string MSToString(MemoryStream ms) { // Zeichenweise Umwandlung eines Memory-Streams in einen String string s = String.Empty; byte[] ba = ms.ToArray(); foreach (byte b in ba) { s += (char)b; } return s; } } }
Ausgaben werden in den Beispielen durch Hilfsroutinen wie out() und PrintOut() erzeugt. Diese sind hier nicht angegeben, da deren Implementierung von der jeweiligen Umgebung abhängt. Für Konsolenanwendungen können hier z.B. Console.WriteLine() einsetzen.
Liste aller Codebeispiele Definition '.NET Framework Class Library' Verfügbarkeit der Klasse 'System.Xml.Serialization.XmlSerializer' Übersicht über den FCL-Namensraum 'System.Xml.Serialization' .NET & Visual Studio Community Portal