Deserialisieren aus XML-String
Autor: Dr. Holger Schwichtenberg
' ### Deserialisieren aus XML-String Function xmldeserialize_string(ByVal t As Type, ByVal s As String) As Object Dim obj As Object ' --- Objekt in Stream kopieren Dim stream As New MemoryStream() Dim w As New StreamWriter(stream) w.BaseStream.Seek(0, SeekOrigin.End) w.WriteLine(s) w.Close() ' Stream umkopieren, weil jetzt geschlossen stream = New MemoryStream(stream.ToArray) Dim serializer As New XmlSerializer(t) obj = serializer.Deserialize(stream) out("Objekt wurde deserialisiert!") stream.Close() Return (obj) 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 object XmlDeserializeString(Type t, string s) { // Deserialisieren aus XML-String object obj; // Objekt in Stream kopieren MemoryStream stream = new MemoryStream(); StreamWriter w = new StreamWriter(stream); w.BaseStream.Seek(0, SeekOrigin.End); w.WriteLine(s); w.Close(); // Stream umkopieren, weil jetzt geschlossen stream = new MemoryStream(stream.ToArray()); XmlSerializer serializer = new XmlSerializer(t); obj = serializer.Deserialize(stream); FclOutput.PrintOut("Objekt wurde deserialisiert!"); stream.Close(); return (obj); } } }
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