XML:Как десериализовать только строку с пространством имен?
<?xml version="1.0" encoding="utf-8"?><string xmlns="http://www.example.com">Message received</string>
Я предпочитаю десериализации используя метод расширения, как так:
<Extension()> _
Public Sub DeserializeFromXML(ByRef objTarget As Object, ByVal strXML As String)
Dim objXMLSerializer As New System.Xml.Serialization.XmlSerializer(objTarget.GetType())
Dim objStringReader As New System.IO.StringReader(strXML)
objTarget = objXMLSerializer.Deserialize(objStringReader)
End Sub
Пример:
Dim strExample As String = String.Empty
strExample.DeserializeFromXML(strXML)
Это происходит сбой из-за пространства имен (он работает и без него). Я не могу создать новый класс, который наследует от String, потому что он не наследуется (ради использования атрибутов для определения пространства имен). Как я могу десериализовать простую строку XML с пространством имен?
Спасибо за сообщение. Мне удалось выяснить проблему из этого кода. Такой простой ответ: используйте перегрузку DefaultNamespace Overload в конструкторе Serializer. – N0Alias