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!