Heim >Backend-Entwicklung >C++ >Wie kann ich ein Objekt aus einem serialisierten XML-String in C# deserialisieren?

Wie kann ich ein Objekt aus einem serialisierten XML-String in C# deserialisieren?

DDD
DDDOriginal
2024-12-26 14:39:17876Durchsuche

How Can I Deserialize an Object from a Serialized XML String in C#?

Deserialisieren eines Objekts aus einem String

Die bereitgestellte Methode SerializeObject ermöglicht die Serialisierung von Objekten in Dateien. Um die XML-Darstellung des Objekts als String abzurufen, ist eine geringfügige Änderung erforderlich.

Die Lösung besteht darin, den StreamWriter durch einen StringWriter zu ersetzen:

public static string SerializeObject<T>(this T toSerialize)
{
    XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());

    using(StringWriter textWriter = new StringWriter())
    {
        xmlSerializer.Serialize(textWriter, toSerialize);
        return textWriter.ToString();
    }
}

Die GetType()-Methode wird verwendet im XmlSerializer-Konstruktor, um sicherzustellen, dass alle möglichen Unterklassen von T während der Serialisierung berücksichtigt werden.

Im Gegensatz zur Verwendung von typeof(T) GetType() deckt alle Unterklassen ab und ermöglicht dem Code, Objekte mit Vererbung zu verarbeiten. Weitere Informationen und ein konkretes Beispiel, wo typeof(T) Probleme verursacht, finden Sie unter dem folgenden Link: http://ideone.com/1Z5J1.

Darüber hinaus ist es erwähnenswert, dass verschiedene Versionen der .NET-Runtime kann unterschiedliche Ausnahmemeldungen generieren, wenn Fehler mit typeof(T) auftreten.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Objekt aus einem serialisierten XML-String in C# deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn