[C#] DeSerialize XML - Objekte aus XML erstellen

Drucken
( 4 Votes )
Hauptkategorie: Programmieren Kategorie: C#
Erstellt am 19.07.2012 Zuletzt aktualisiert am 19.07.2012 Geschrieben von Jonny132
In [C#] Serialize XML - Objekte serialisieren wird gezeigt wie man Objekte auf einfache Weise Serialisieren kann bzw in lesbares XML wandeln kann. In diesem Tutorial deserialisieren wir dieses XML wieder in ein Object.

DeSerializeFromXml - Funktion:
        public object DeSerializeFromXML(string xml, Type type)
        {
            try
            {
                XmlSerializer x = new XmlSerializer(type);
                byte[] xmlBytes = Encoding.Default.GetBytes(xml);
                using (MemoryStream ms = new MemoryStream(xmlBytes))
                {
                    return x.Deserialize(ms);
                }
            }
            catch
            {
                throw;
            }
        }
Auf zum Deserialisieren von XML zu einem Objekt, benötigen wir eine Instanz vom Typ XmlSerializer.
Mittels GetBytes() erstellen wir ein byte - Array welche die Informationen unseres XML - Strings enthält, damit wir ein MemoryStream daraus erstellen können, welcher wiederrum mittels der Deserialize - Methode des XmlSerializer in ein object umgewandelt werden kann.

Aufrufbeispiel:
            TestKlasse test = (TestKlasse)DeSerializeFromXML(
                @"<?xml version=""1.0""?>
                <TestKlasse xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">
                    <Property1>Eigenschaft 1</Property1>
                    <Property2>Eigenschaft 2</Property2>
                    <Property3>50</Property3>
                </TestKlasse>", typeof(TestKlasse));

            MessageBox.Show("Property1: " + test.Property1 + Environment.NewLine +
                            "Property2: " + test.Property2 + Environment.NewLine +
                            "Property3: " + test.Property3.ToString());
Deserialisierung eines XML - String in ein Objekt

    Veröffentlichen Sie ihre Kommentare ...