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# ?
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!