He visto un montón de ejemplos en línea, pero ya no puedo hacer sentido de la aplicación o el ejemplo es muy diferente de la mía para que me transponer. Tengo un XML

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

Y las siguientes clases

<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

El código siguiente genera un InterfacesModel con un vacío Interfaces lista:

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

Esperaría que pueblan las Interfaces como una Lista(de InterfaceModel) para que yo pueda realizar una para cada una de las Interfaces y hacer algo para cada Interfaz.

InformationsquelleAutor theB3RV | 2014-12-01

2 Comentarios

  1. 6

    Necesita XmlElement("Interface") en su propiedad. También, usted puede deshacerse de la XmlType atributos. No creo que los están haciendo nada para usted.

    <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. 0

    Cuando estoy escribiendo serializable clases yo no utilice etiquetas que sólo tiene que utilizar algo como esto y funciona de la misma

    <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

Dejar respuesta

Please enter your comment!
Please enter your name here