Maison >développement back-end >C++ >Comment sérialiser une classe avec un membre de dictionnaire en C# ?

Comment sérialiser une classe avec un membre de dictionnaire en C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-15 18:41:45179parcourir

How to Serialize a Class with a Dictionary Member in C#?

Sérialisation de classe C# contenant des membres de dictionnaire

Lorsque vous essayez de sérialiser une classe contenant des membres de dictionnaire, un message d'erreur similaire à "Impossible de sérialiser le membre App.Configfile.mappedDrives" peut apparaître. Bien que les dictionnaires puissent être sérialisés, ce problème peut toujours se produire.

Pour résoudre ce problème, vous pouvez envisager d'utiliser la solution de dictionnaire générique sérialisable XML fournie par le blog de Paul Welter. Les dictionnaires génériques dans .NET 2.0 ne sont pas sérialisables en XML. L'extrait de code de Welter fournit une solution, implémentant l'interface IXmlSerializing pour rendre le dictionnaire sérialisable.

Voici le code fourni :

<code class="language-csharp">[XmlRoot("dictionary")]
public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable
{
    // ...
}</code>

En implémentant les méthodes ReadXml et WriteXml, cette classe de dictionnaire personnalisé peut sérialiser et désérialiser les paires clé-valeur. Ce dictionnaire personnalisé peut être utilisé pour remplacer le dictionnaire standard dans la classe ConfigFile afin de résoudre les problèmes de sérialisation.

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