Sérialisation Xml : Sérialiser une HybridDictionary ou Hashtable ??? [Résolu]

Signaler
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
-
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
-
Boujour à tous,

Quelqu'un pourrait il m'aider ?

Je cherche à sérialiser une hashtable ou une hybriddictionnary !

Je cherche, je cherche, sans succés !

Merci à tous !

(VS2005 fr, framework 2.0)

6 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Hé non...
L'attribut Serializable ne veut pas dire que l'object est serializable avec un XmlSerializer, ça veut dire qu'il est serializable avec un BinaryFormatter (ou SoapFormatter).
Si tu n'es pas trop à l'aise avec les Attributes, tu peux rapidement jeter un coup d'oeil ici

<hr />
-Blog-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Salut,
Regardes sur le site, il y a différentes sources qui pourront t'être utile... Par exemple, celle-ci

<hr />
-Blog-
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
1
Merci mais ce n'est pas tout à fait ce que je cherche.

J'ai une classe que je sérialise pour obtenir une instance :

public class LienWeb


   private string sLibelle;
   private string sUrl;
   private HybridDictionary hd = new HybridDictionary(); 

   [XmlAttributeAttribute("libelle")]
   public string Libelle
   {
      get { return sLibelle; }
      set { sLibelle = value; }
   } 

   [XmlAttributeAttribute("url")]
   public string Url
   {
      get { return sUrl; }
      set { sUrl = value; }
   } 

   [???]
   public HybridDictionary Parametres
   {
      get { return hd; } 
      set { hd = value; } 
   }
}

Le problème c'est que ma  HybridDictionary (qui m'interesse) ne se sérialise pas.

Voici ma méthode :

public void Enregistre(LienWeb lien)
{
   XmlSerializer serializer = new XmlSerializer(typeof(LienWeb)); 

   using (TextWriter writer = new StreamWriter("C:\test.xml")) 
      serializer.Serialize(writer, lien); 
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Le problème justement c'est qu'un Dictionary ne peut pas être serializé.
Cherches sur le site, y'a des sources qui expliquent comment contourner le problème...

<hr />
-Blog-
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
1
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
1
oki merci, j'viens de regarder tout ça.