Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Сериализация с 5 параметрами.


Автор: MpermyakM 21.10.2013, 11:21
Всем привет
На лабораторной по программированию задали привести примеры методов класса XmlSerializer. С половиной разобрался, а еще с половиной нет... Сразу скажу, что сериализацию, Я мягко говоря плохо понимаю ибо до этого с ней не сталкивался.

Код

Serialize(XmlWriter, Object,XmlSerializerNamespaces, String, String)

Не понимаю, что должно быть в последних двух параметрах.
Четвёртый параметр это encodingStyle, (Кодирование, используемое в документе), но как его записать?  "UTF-8" воспринимается с ошибкой... 
Пятый параметр это id для SOAP, но Я так и не понял, что это...

Уже недели 3 гуглю, но ничего толкового не нашёл... Хотя б покажите где про это можно почитать?

Заранее благодарен.

Автор: dzaraev 21.10.2013, 12:28
Не понимаю, как можно было за три недели(!)  не нагуглить http://msdn.microsoft.com;

Про сериализацию (по ссылке есть подробности по бинарной и прочей с.):
Код

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

Источник: http://msdn.microsoft.com/ru-ru/library/ms233843(v=vs.100).aspx

Про параметр encodingStyle:
Код

Для параметра encodingStyle установите значение "http://schemas.xmlsoap.org/soap/encoding/" 
для использования кодирования SOAP версии 1.1, в противном случае установите 
значение "http://www.w3.org/2001/12/soap-encoding" для использования кодирования SOAP версии 1.2.

Источник: http://msdn.microsoft.com/ru-ru/library/z8x4k1h2(v=vs.100).aspx

Про параметр id:
Код

Параметр id предоставляет базовую строку, используемую для создания идентификаторов SOAP. 
По умолчанию данные идентификаторы имеют значения "id1", "id2" и т. д. 
Если параметр имеет значение "myBase", будут сгенерированны значения "myBaseid1", "myBaseid2" и т. д. 
Данная функция используется для создания уникальных значений идентификаторов во всем сообщении SOAP.

Источник: http://msdn.microsoft.com/ru-ru/library/ms163163(v=vs.100).aspx

Про SOAP: начните с вики.

Автор: MpermyakM 21.10.2013, 14:24
MSDN Я нагуглил, забыл про это написать...
Значения:
http://schemas.xmlsoap.org/soap/encoding/
http://www.w3.org/2001/12/soap-encoding

Не подходят, точнее при компиляции выдаёт ошибку
"Ошибка при создании XML документа"
Подробнее:
"Стиль кодирования \"http://www.w3.org/2001/12/soap-encoding/\" для этого вызова является недействительным, т.к. этот интерфейс XmlSerializer не поддерживает кодирование. Используйте SoapReflectionImporter для инициализации XmlSerializer, который поддерживает кодирование."

Аналогично с http://schemas.xmlsoap.org/soap/encoding/

Что Я делаю не так?..

Автор: dzaraev 21.10.2013, 15:08
Теперь вижу, что с соапом проблема глубже, гуглить сейчас времени нет, пока могу порекомендовать только почитать о классе, о котором идет речь в ошибке: http://msdn.microsoft.com/ru-ru/library/vstudio/system.xml.serialization.soapreflectionimporter(v=vs.100).aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)