Je suis en train de sérialiser un dictionnaire en XML. Lorsque je crée un nouveau dictionnaire que j'utilise le constructeur pour fournir EqualityComparer sans boîtier par exempleDictionnaire de sérialisation <chaîne, objet> lorsque le dictionnaire a été initialisé avec une chaîne insensible à la casse.
var tabs = new Dictionary<string,Tab>(StringComparer.OrdinalIgnoreCase);
Je sérialiser ensuite XML et quand je deserialize informations sur boîtier est perdu - la désérialisation est faite au dictionnaire avec GenericEqualityComparer, qui Apparemment, il est sensible à la casse car il ne trouve pas mes clés si elles ne sont pas correctement placées.
Des idées comment puis-je le changer? Un moyen serait de créer un nouveau dictionnaire et de copier les données de la désérialisée vers la nouvelle, mais cela semble gênant.
MISE À JOUR:
Le désérialisation a travaillé tout le temps, il est juste que ce désérialise le Dictionnaire sérialisé à celui qui n'utilise pas les clés de la casse.
Est-ce que ce problème se produit lorsque vous utilisez DataContract? –
oui, la classe qui contient une propriété de type Dictionary est marquée DataContract et cette propriété est marquée DataMbember, si c'est ce que vous vouliez savoir –
mare
Oui, ça l'était, mais maintenant que vous avez compris qu'il fonctionne dans .NET 4.0, il n'y a rien pour moi de suivre. Félicitations pour résoudre votre propre problème. –