【发布时间】:2014-01-27 22:34:44
【问题描述】:
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 字符串?
【问题讨论】: