【问题标题】:Deserialize XML string to Object VB.NET将 XML 字符串反序列化为对象 VB.NET
【发布时间】:2015-01-29 21:42:38
【问题描述】:

我在网上看到了很多示例,但要么我无法理解该应用程序,要么示例与我的示例差异太大而无法转置。我有一个 XML

<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

我希望它将 Interfaces 填充为 List(of InterfaceModel),以便我可以在 Interfaces 上为 each 执行 a 并对每个 Interface 做一些事情。

【问题讨论】:

    标签: xml vb.net serialization


    【解决方案1】:

    您的财产需要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
    

    【讨论】:

      【解决方案2】:

      当我编写可序列化的类时,我不使用标签,我只是使用类似的东西,它的工作原理是一样的

      <Serializable>
      Public Class Interfaces
          Public interface as InterfaceModel() 'The () Defines an array of InterFaceModels
      End Class
      
      <SerialzableAttribute>
      Public Class InterfaceModel
          Public InterFaceCode As String
          Public AccessID As String
          Public Password As String
      End Class
      

      【讨论】:

        猜你喜欢
        • 2014-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        相关资源
        最近更新 更多