Heim >Backend-Entwicklung >C++ >Wie kann ich ein Objekt aus einem serialisierten XML-String in C# deserialisieren?
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!