Проблемы десериализации массива строк C # - PullRequest
1 голос
/ 16 сентября 2009

У меня действительно странная проблема с сериализацией на MSMQ и обратно.

сериализуемый объект содержит строковый массив; одна из строк в массиве содержит пробелы и возврат каретки ("\r\n"). Объект сконструирован нормально и, кажется, сериализуется без проблем, но когда я десериализую его (в другом проекте), массив теперь содержит элемент для каждого отдельного слова и пробела.

т.е.:
массив { "first", "this is a test string" }
становится { "first", "this", "", "is", "", "a", "", "test, "", "string" }

Понятия не имею, что происходит ... что касается сериализации, я использую MessageQueue.Send() и System.XML.Serialization.

Любая помощь?

Ответы [ 2 ]

1 голос
/ 16 сентября 2009

\r\n, кажется, портит вашу сериализацию. Можете ли вы перехватить сериализацию и заменить их другим набором символов, прежде чем обезвоживать их, а затем добавлять их обратно при повторной гидратации?

0 голосов
/ 16 сентября 2009

Как выглядит сериализованный XML? Если вы посмотрите на фактический вывод xml, вы сможете определить, является ли это причиной сериализатора или десериализатора, что, несомненно, поможет при попытке исправить.

С учетом сказанного я скажу, что я очень часто сериализую объекты, которые содержат точное формирование данных, которые вы указываете, и я совершенно уверен, что никогда не видел такого поведения.

Возможно, будет полезен пример кода для воспроизведения проблемы.

...