Maison > développement back-end > C++ > Comment sérialiser une classe avec un membre de dictionnaire dans .NET 2.0 ?

Comment sérialiser une classe avec un membre de dictionnaire dans .NET 2.0 ?

DDD
Libérer: 2025-01-15 18:39:44
original
758 Les gens l'ont consulté

Contient des méthodes de sérialisation pour les classes membres du dictionnaire sous .NET 2.0

Cet article prolonge une discussion précédente sur la question de la sérialisation des classes contenant des membres de dictionnaire. Cette classe contient trois attributs : guiPath, configPath et mappedDrives. mappedDrives est un dictionnaire mappant les lettres de lecteur aux chemins réseau.

Cependant, lors de la sérialisation ou de la désérialisation de la classe, l'utilisateur reçoit l'erreur suivante :

Impossible de sérialiser le membre App.Configfile.mappedDrives

Cette erreur se produit car, pour une raison quelconque, les dictionnaires génériques de .NET 2.0 ne sont pas sérialisables en XML.

Solution

Pour résoudre ce problème, les utilisateurs peuvent utiliser une classe de dictionnaire sérialisable personnalisée. Paul Welter propose un tel cours sur son blog :

<code class="language-csharp">using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

[XmlRoot("dictionary")]
public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable
{
    // 部分代码省略 ...
}</code>
Copier après la connexion

Cette classe implémente l'interface IXmlSerializable, lui permettant d'être sérialisée et désérialisée. Les utilisateurs peuvent ensuite utiliser cette classe de dictionnaire personnalisé dans leur classe principale :

<code class="language-csharp">// ...

public Dictionary<string, string> mappedDrives = new SerializableDictionary<string, string>();

// ...</code>
Copier après la connexion

Cela devrait permettre à la classe d'être sérialisée et désérialisée correctement.

How to Serialize a Class with a Dictionary Member in .NET 2.0?

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal