这看起来很愚蠢,我知道,但仍然是:当我从XML对象反序列化并转换为所需的类对象时,我得到的只是(正确的)对象结构,但我需要的值仍为Nothing或Null(取决于类定义的属性类型。
我非常确定使用的参数XMLString肯定包含数据。不能从任何地方检索对象结构!
Generic Object不是问题,MyObject返回时的类型正确。但有没有人知道为什么对象不包含XML中的实际数据?
这是我使用的代码:
Public Shared Function ReadObjectFromXML(Of T)(XMLString As String) As T
Dim MyObject As T
Dim read As StringReader = New StringReader(XMLString)
Dim serializer As New XmlSerializer(GetType(T))
Dim reader As XmlReader = New XmlTextReader(read)
Try
MyObject = DirectCast(serializer.Deserialize(reader), T)
Return MyObject
Catch
Return Nothing
Finally
reader.Close()
read.Close()
read.Dispose()
End Try
End Function
谢谢!
彼得
答案 0 :(得分:1)
问题可能不在(de)序列化程序中,而是在ObjectClass的定义中。
当ObjectClass具有复杂结构时,即具有实际List(of T)项的属性时,ObjectClass定义不应该在该属性之前具有任何xmltags。所有其他属性都应该有前缀。
至少在我的情况下,这解决了(通过网络搜索两天后)我的问题。
干杯!
彼得