Comment XML-sérialiser un dictionnaire
J'ai été en mesure de sérialiser un IEnumerable de cette façon:
[XmlArray("TRANSACTIONS")]
[XmlArrayItem("TRANSACTION", typeof(Record))]
public IEnumerable<BudgetRecord> Records
{
get
{
foreach(Record br in _budget)
{
yield return br;
}
}
}
Cependant, j'ai réalisé que maintenant j'ai besoin d'un dictionnaire contenant une collection Dictionary<string, RecordCollection>
(RecordCollection implémentant IEnumerable).
Comment puis-je y parvenir?
- Je l'ai sur la bon rapport, que les dictionnaires sont sérialisables dans .NET 4.0.
- Comment serait-il terminé avec le custom noms d'éléments et d'attributs?
- Voir Une façon de Sérialiser les Dictionnaires.
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil au blog suivant
http://blogs.msdn.com/b/psheill/archive/2005/04/09/406823.aspxet celui-ci (pas en anglais, mais le code est utile)
Exemple de Code à partir de: http://web.archive.org/web/20100703052446/http://blogs.msdn.com/b/psheill/archive/2005/04/09/406823.aspx
Il génère la sortie suivante, lorsque les clés et les valeurs sont des chaînes de caractères.
J'ai utilisé le ci-dessous pour quelques temps. Il vient à l'origine de ici.
Voici une bien plus courte version basée sur Gildors réponse:
Profiter.
KeyValuePair
n'est pas sérialisable à l'aide deXmlSerializable
, comme les deuxKey
etValue
sont en lecture seule. Une solution possible peut être trouvé here.S'il vous plaît essayer cette alternative, de façon très simple:
Ici le résultat xml: