|
Ошибка сериализации через fastinfoset
| ☑ |
0
Gorr
31.10.17
✎
15:02
|
ОбъектСериализации = Новый Структура;
ОбъектСериализации.Вставить("тест", Истина);
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(Запись, ОбъектСериализации, НазначениеТипаXML.Явное);
Данные = Запись.Закрыть();
чтение = Новый ЧтениеXML;
чтение.УстановитьСтроку(Данные);
Результат = СериализаторXDTO.ПрочитатьXML(чтение);//ОК!
Запись = Новый ЗаписьFastInfoset;
Запись.УстановитьДвоичныеДанные();
СериализаторXDTO.ЗаписатьXML(Запись, ОбъектСериализации, НазначениеТипаXML.Явное);
Данные = Запись.Закрыть();
чтение = Новый ЧтениеFastInfoset;
чтение.УстановитьДвоичныеДанные(Данные);
Результат = СериализаторXDTO.ПрочитатьXML(чтение);//Error!
//Ошибка отображения пространства имен
//Отсутствует отображение для префикса: 'xs'
Почему через обычное чтение запись XML объект сериализуется/десериализуется без проблем, в то время как при использования FastInfoset возникает ошибка на этапе восстановления сериализованного объекта. В чем нюанс?
|
|
1
Digger
31.10.17
✎
15:36
|
был такой древний баг платформы еще в 8.3.4, думал давно пофиксили.
|
|
2
Gorr
31.10.17
✎
15:46
|
(1) да не может такого быть чтоб не работало!
НЮАНС нужно искать!!!
|
|
3
Digger
31.10.17
✎
16:04
|
(2) Помню даже в типовой БП/УТ версионирование в итоге переделали с фастинфосета на какой то костыль через хмл чтение. )
|
|
4
Gorr
01.11.17
✎
17:27
|
Кароче, сделал так:
запись = Новый ЗаписьXML;
запись.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(запись, Данные, НазначениеТипаXML.Явное);
Парам.ExtraData = Новый ХранилищеЗначения(запись.Закрыть(), Новый СжатиеДанных(9));
|
|
5
Gorr
01.11.17
✎
17:29
|
Нюанс не нашел
|
|
6
Fragster
гуру
01.11.17
✎
17:33
|
(3) это чтобы при изменении структуры метаданных версионирование продолжало работать
|
|