lorsque j'essaie de sérialiser un dictionnaire, tout a bien fonctionné. mais quand je désérialise c'est montrer le compte comme 0. Mais, cela fonctionne bien avec une liste. Qu'est-ce qui se passe exactement quand nous désérialisons une liste et un dictionnaire?Problème de désérialisation avec le dictionnaire
Répondre
Les dictionnaires ne prennent pas réellement en charge la sérialisation. C'est un problème connu qui dérange beaucoup de programmeurs, donc si vous "Google Serialization" .NET vous obtiendrez de nombreux résultats avec "how-to" et solutions de contournement. Par exemple, blog post suggère d'utiliser la classe KeyedCollection à la place.
Vous avez raison à propos des dictionnaires, mais les exceptions peuvent être sérialisées. – Timores
@Timores, j'ai effacé la partie sur les exceptions. J'ai rencontré des problèmes lors de la sérialisation des exceptions dues à un membre du dictionnaire contenu, mais cela peut être lié à un type spécifique d'exception que je numérotais ou au fait que j'utilisais XmlSerializer ou même au fait que j'utilisais VB. De toute façon, je ne pense pas que vous puissiez généralement dire que toutes les exceptions sont sérialisables, je suppose que la vérité est quelque part entre les deux. S'il vous plaît élaborer si vous avez des informations supplémentaires sur ce sujet. –
En général, toutes les classes ne sont pas sérialisables, je suis d'accord. Et nous devons définir si nous parlons de sérialisation binaire ou de sérialisation XML. Je pensais à la première, où vous pouvez implémenter ISerializable pour prendre en charge le processus de sérialisation et sérialiser une classe avec un dictionnaire incorporé. Vous pouvez utiliser n'importe quel langage .NET, d'ailleurs, ils sont tous sémantiquement équivalents. – Timores
Si vous utilisez .Net 3.5, vous pouvez utiliser DataContractSerializer pour sérialiser un dictionnaire. C'est aussi plus rapide qu'un BinaryFormatter ou un XmlSerializer.
using System.Runtime.Serialization;
var dict = new Dictionary<string, string>();
dict.Add("a","a");
DataContractSerializer dcs = new DataContractSerializer(dict.GetType());
MemoryStream byteStream = new MemoryStream();
dcs.WriteObject(byteStream, dict);
byteStream.Position = 0;
var dict2 = dcs.ReadObject(byteStream);
- 1. Sérialisation/désérialisation Dictionnaire d'objets avec JSON.NET
- 2. problème Désérialisation avec DataContractJsonSerializer
- 3. Désérialisation avec la liste XmlSerializer dans le dictionnaire
- 4. Sérialisation et désérialisation de tableaux vides dans le dictionnaire/objet
- 5. problème désérialisation JSON avec JSON.NET
- 6. Problème de désérialisation XML
- 7. Problème de désérialisation WCF
- 8. problème de désérialisation dans php
- 9. Problème de désérialisation du GSON
- 10. problème avec désérialisation JSON sur DataMember « __type »
- 11. Problème avec la désérialisation XML C#
- 12. C# problème Désérialisation
- 13. C# problème XML désérialisation
- 14. problème avec la clé de dictionnaire Python
- 15. Problème de sérialisation/désérialisation de Silverlight
- 16. Problème de désérialisation XML (attribut avec un espace de noms)
- 17. Problème de désérialisation des listes génériques avec C# XmlSerializer
- 18. WCF DataContract problème de désérialisation avec des valeurs vides
- 19. problème en C# Xml désérialisation
- 20. IXmlSerializable problème de dictionnaire
- 21. Problème de désérialisation du fichier XML
- 22. problème désérialisation ASP.NET ScriptService avec des types dérivés
- 23. problème de blocage désérialisation XML pour objet problème
- 24. dictionnaire et pile dans le problème python
- 25. Le dictionnaire n'est pas désérialisable
- 26. python problème dictionnaire
- 27. Vitesse de désérialisation de Java
- 28. Police introuvable avec le dictionnaire de fusion
- 29. Dictionnaire de sérialisation <chaîne, objet> lorsque le dictionnaire a été initialisé avec une chaîne insensible à la casse.
- 30. WPF BitmapImage Sérialisation/désérialisation
Montrez-nous du code puis! – spender
Quel sérialiseur? Cela compte un ** lot **? Est-ce 'XmlSerializer'? 'BinaryFormatter'? 'DataContractSerializer'? 'NetDataContractSerializer'? JSON? proto bufs? SAVON? J'ai peur que chacun ait un comportement subtilement différent. Beaucoup (pas tous) * ne * prennent en charge la sérialisation du dictionnaire. Vous pouvez également avoir besoin d'étapes supplémentaires si vous avez effectué une sérialisation personnalisée ('ISerializable' etc.). –
J'essaie de sérialiser en utilisant BinaryFormatter .. – sandhya