Проблема десериализации XML - PullRequest
0 голосов
/ 20 ноября 2008

У меня есть следующий xml, отправленный мне из веб-службы. Я использую .NET для десериализации, но получаю исключение, говорящее, что он отформатирован неправильно. There is an error in XML document (2, 2) Теперь, если я правильно понимаю, ему не нравится, что он находит первый <error> узел.

<?xml version="1.0" encoding="UTF-8"?>
<messages xmlns="http://www.w3.org/1999/xml">
  <error>error text</error>
  <message>message text</message>
</messages>

мой код выглядит следующим образом, данные представляют собой String версию XML выше:

Dim resp As cResponseMessage
Dim sr As New StringReader(data)
Dim xs As New XmlReaderSettings()

Dim xd As New XmlSerializer(GetType(cResponseMessage))
resp = xd.Deserialize(XmlTextReader.Create(sr, xs))

и cResponseMessage - это просто класс с атрибутом XMLRoot и 2 свойствами с атрибутами XMLElement. Здесь нет ничего особенного, но оно не хочет работать.

Любая помощь будет отличной.

Ответы [ 2 ]

1 голос
/ 20 ноября 2008

Этот класс работает для меня:

<XmlRoot(Namespace:="http://www.w3.org/1999/xml", ElementName:="messages")> _
Public Class cResponseMessage

    <XmlElement> _
    Public Property [error] As String
        Get
        Set(ByVal value As String)
    End Property

    <XmlElement> _
    Public Property message As String
        Get
        Set(ByVal value As String)
    End Property
End Class
0 голосов
/ 20 ноября 2008

Ошибка в XML-документе (2, 2) выглядит так, как если бы он был в .

Возможно, у вас неправильно настроен XmlRoot в cResponseMessage?

...