2009-09-15 5 views
1

Je rencontre un problème vraiment étrange lors de la sérialisation vers un MSMQ et inversement.Problèmes de désérialisation de la chaîne de caractères C#

L'objet en cours de sérialisation contient un tableau de chaînes; l'une des chaînes du tableau contient des espaces et des retours chariot ("\r\n"). L'objet est bien construit et semble sérialiser sans problème, mais quand je le désérialise (dans un autre projet), le tableau contient maintenant un élément pour chaque mot et chaque espace.

i.e. .:
le tableau { "first", "this is a test string" }
devient { "first", "this", "", "is", "", "a", "", "test, "", "string" }

Je ne sais pas ce qui se passe ... jusqu'à la sérialisation, j'utilise MessageQueue.Send() et System.XML.Serialization.

Une aide?

+0

Souhaitez-vous poster un exemple de code? – JeffH

Répondre

1

\r\n semblent être en train de chambouler votre sérialisation. Pouvez-vous intercepter la sérialisation et les remplacer par un autre jeu de caractères avant de les déshydrater et de les rajouter lors de la réhydratation?

+0

J'ai essayé et obtenu les mêmes résultats. Merci quand même. – Luke

0

À quoi ressemble le fichier XML sérialisé? Si vous regardez la sortie xml réelle, vous devriez être en mesure de dire si c'est le sérialiseur ou le désérialiseur qui cause le problème, ce qui aiderait certainement à tenter une solution. Cela dit, je dirais que je sérialise très souvent les objets qui contiennent la formation exacte des données que vous spécifiez et je suis assez certain que je n'ai jamais vu ce comportement. Un exemple de code permettant de reproduire le problème serait peut-être utile.

Questions connexes