2014-12-01 120 views
2

我在网上看到很多示例,但是我无法理解应用程序,或者示例与我的转换太不相同。我有一个XML将XML字符串反序列化为对象VB.NET

<Interfaces> 
    <Interface> 
     <InterfaceCode>987</InterfaceCode> 
     <AccessID>asdf</AccessID> 
     <Password>654321</Password> 
    </Interface> 
    <Interface> 
     <InterfaceCode>789</InterfaceCode> 
     <AccessID>  </AccessID> 
     <Password>  </Password> 
    </Interface> 
</Interfaces> 

而下面的类

<Serializable(), XmlRoot("Interfaces"), XmlType("Interfaces")> 
Public Class InterfacesModel 
    Property Interfaces As New List(Of InterfaceModel) 
End Class 

<Serializable(), XmlType("Interface")> 
Public Class InterfaceModel 
    Property InterfaceCode As String 
    Property AccessID As String 
    Property Password As String 
End Class 

下面的代码生成一个InterfacesModel一个空Interfaces列表:

Dim str As String = xmlString 
Dim interfaces As InterfacesModel 

Dim serializer As New XmlSerializer(GetType(InterfacesModel)) 
Using reader As TextReader = New StringReader(str) 
    interfaces = serializer.Deserialize(reader) 
End Using 

我希望它来填充接口作为列出(InterfaceModel的),以便我可以在Interfaces上为每个接口执行一个操作,并为每个接口执行一些操作。

回答

6

您的物业上需要XmlElement("Interface")。此外,您可以摆脱XmlType属性。我不认为他们正在为你做任何事情。

<Serializable(), XmlRoot("Interfaces")> 
Public Class InterfacesModel 
    <XmlElement("Interface")> Property Interfaces As New List(Of InterfaceModel) 
End Class 

<Serializable()> 
Public Class InterfaceModel 
    Property InterfaceCode As String 
    Property AccessID As String 
    Property Password As String 
End Class 
相关问题