"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment sérialiser une classe avec des membres du dictionnaire dans .NET 2.0?

Comment sérialiser une classe avec des membres du dictionnaire dans .NET 2.0?

Publié le 2025-04-13
Parcourir:150

Méthode de sérialisation contenant des classes de membres du dictionnaire sous .net 2.0

Cet article étend une discussion précédente sur la sérialisation des classes de membres du dictionnaire. Cette classe contient trois propriétés: Guipath , configPath et mappedDrives . mappedDrives est un dictionnaire utilisé pour cartographier les lettres de lecteur aux chemins de réseau.

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

ne peut pas sérialiser le membre app.configfile.maptdrives

Cette erreur se produit pour une raison quelconque que le dictionnaire générique dans .NET 2.0 n'est pas réalisé par XML.

solutions

Pour résoudre ce problème, les utilisateurs peuvent utiliser des classes de dictionnaire sérialisables personnalisées. Paul Welter fournit une classe comme celle-ci sur son blog:

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

[XmlRoot("dictionary")]
public class SerializableDictionary : Dictionary, IXmlSerializable
{
    // 部分代码省略 ...
}

Cette classe implémente l'interface ixmlSerializable , ce qui lui permet d'être sérialisé et désérialisé. L'utilisateur peut ensuite utiliser cette classe de dictionnaire personnalisée dans sa classe principale:

// ...

public Dictionary mappedDrives = new SerializableDictionary();

// ...

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?

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3