Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Вопрос по десериализаци

Ответить
Настройки темы
.NET - Вопрос по десериализаци

Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Господа, прокомментируйте, пжст, вот какой момент.

В коде один из пользовательских типов заполняется из xml следующим образом:

XmlDocument document = new XmlDocument();
document .LoadXml(incomingXml);
XPathNavigator navigator = doc.CreateNavigator()
XPathNavigator routingNav = navigator.SelectSingleNode("looking for that it is necessary", namespace);
XmlSerializer s = new XmlSerializer(typeof(MyType));
using (StringReader r = new StringReader(routingNav.OuterXml))
{
using (XmlReader reader = XmlReader.Create(r))
{
mytype= (MyType)s.Deserialize(reader);
}
}

Все работает, но смущает, что использовать приходится и XPathNavigator, и StringReader, и XmlReader. Найти материалы про десериализацию, скажем, XPathNavigator напрямую не удалось. Есть ли более компактный способ десериализации?
Спасибо.

Отправлено: 16:46, 27-11-2012

 

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Я проще десериализовывал объекты:

Код: Выделить весь код
        public Module(string path)
        {
            Module mod;

            XmlSerializer ModSerializer = new XmlSerializer(this.GetType());

            using (StreamReader StrReader = File.OpenText(path))
            {
                mod = ModSerializer.Deserialize(StrReader) as Module;
            }

        }

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 09:38, 28-11-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


В таком случае выдает:
There is an error in XML document (0, 0).
хотя StringReader необходимый фрагмент XML содержит.

Отправлено: 10:54, 28-11-2012 | #3


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Скажите у вас не проходит десериализация уже сериализованного объекта. Или вы из некоторого XML файла пытаетесь восстановить объект?

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 12:04, 28-11-2012 | #4


Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Сериализованный объект приходит как часть пакета. Из соответствующего этому объекту xml надо выдернуть определенный кусок, и на его основе десериализовать экземпляр, тип которого заранее определен

Отправлено: 15:43, 28-11-2012 | #5


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Можете привести примеры пакета, пример того что вы из него выдернули для десериализации.

А также создать тестовый экземпляр класса и сериализовать его. Покажите что получилось.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 16:47, 28-11-2012 | #6


Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Входной xml передается в метод как string (incomingXml в коде выше), далее XPathNavigator выбирается нужный элемент со всеми дочерними элементами и десериализуется как показано выше.

Отправлено: 11:08, 29-11-2012 | #7


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Покажите
Цитата navab:
Входной xml »
покажите результат
Цитата navab:
XPathNavigator выбирается нужный элемент со всеми дочерними элементами »
Также создайте элемент класса.
Цитата navab:
MyType »
сериализуйте его и выложите XML

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 12:11, 29-11-2012 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Вопрос по десериализаци

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Вопрос о HDD B1Km0p Ноутбуки 11 10-04-2011 22:41
Прочее - Вопрос по Wi-Fi. arif84 Сетевое оборудование 7 26-09-2010 13:58
Разное - Вопрос CocoNuts Наборы обновлений для Windows XP/2003/Windows 7 4 02-12-2007 19:32
Интернет - Вопрос по SP3 Cesc Microsoft Windows 2000/XP 2 27-11-2007 20:58
вопрос Guest Хочу все знать 4 28-01-2004 08:06




 
Переход