Maison >développement back-end >C++ >Comment puis-je désérialiser un objet à partir d'une chaîne XML sérialisée en C# ?

Comment puis-je désérialiser un objet à partir d'une chaîne XML sérialisée en C# ?

DDD
DDDoriginal
2024-12-26 14:39:17876parcourir

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

Désérialiser un objet à partir d'une chaîne

La méthode fournie, SerializeObject, permet la sérialisation d'objets en fichiers. Pour récupérer la représentation XML de l'objet sous forme de chaîne, une légère modification est nécessaire.

La solution consiste à remplacer le StreamWriter par un StringWriter :

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();
    }
}

La méthode GetType() est utilisée dans le constructeur XmlSerializer pour garantir que toutes les sous-classes possibles de T sont prises en compte lors de la sérialisation.

Contrairement à l'utilisation de typeof(T), GetType() couvre toutes les sous-classes, permettant au code de gérer les objets avec héritage. Pour plus d'informations et un exemple concret où typeof(T) provoque des problèmes, reportez-vous au lien suivant : http://ideone.com/1Z5J1.

De plus, il convient de noter que différentes versions du runtime .NET peut générer différents messages d'exception lorsque vous rencontrez des erreurs avec typeof(T).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn