2013-09-30 7 views
0

Я использовал xsd.exe для генерации файла .cs из моего ответа XML.XmlSerializer.Deserialize игнорировать ненужные элементы

В моем ответе XML есть несколько элементов, которые не требуются в приложении, я хочу опустить их, поэтому я удалил их из файла ответов xml и восстановил файл .cs.

Я использую этот файл .cs для десериализации из моего ответа сервера xml (который имеет эти ненужные элементы), что вызывает исключение System.InvalidOperationException.

Пожалуйста, дайте мне знать, как я могу разобрать или десериализовать ответ сервера классу, который имеет только те свойства, которые требуются.

I wok для Windows Phone приложение.

Thanks, Kavit.

ответ

1

Попробуйте украсить свойства, которые вы больше не хотите, с атрибутом XmlIgnoreAttribute.

По умолчанию все общедоступные поля и общедоступные свойства чтения/записи являются , сериализованные XmlSerializer. То есть значение каждого публичного поля сохраняется как элемент XML или атрибут XML в экземпляре XML-документа.

Чтобы переопределить сериализацию поля или свойства по умолчанию, создайте объект XmlAttributes и установите для его свойства XmlIgnore значение true. Добавьте объект к объекту XmlAttributeOverrides и укажите тип объекта, который содержит поле или свойство для игнорирования, и имя поля или свойства для игнорирования.

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributes.xmlignore.aspx

+0

Привет Gusdor, спасибо за быстрый ответ, что вы упомянули, я думаю, что требуется для сериализации, на самом деле я должен преобразовали ответ сервера, поэтому я хочу, чтобы создать файл класса со свойствами, которые действительно полезны в моем приложении и хотят десериализовать только те атрибуты, игнорируя отдых. –

+1

@patelkavit Просто удалите свойства, которые вам не нужны. XmlIgnore работает для обоих. Это хороший способ иметь государственную собственность, но опускать ее из любой (де) сериализации. Для получения более подробной информации вам нужно будет опубликовать код примера для работы. – Gusdor

+0

Да, это работает, но имеет тенденцию к ненужному беспорядочному коду :(, на самом деле в ответе на веб-обслуживание есть 70 XML-элементов из тех, что нам нужны только 10-12 в нашем приложении. Таким образом, мы хотели создать класс только с 10-12 свойства, которые делают класс более удобочитаемым. –

Смежные вопросы