Я использую VB.Net
У меня есть общий метод десериализации XML, подобный так
Public Function Deserialize(xml As String) As T
Dim result As T = Nothing
If Not String.IsNullOrEmpty(xml) Then
Dim tr As IO.TextReader = New IO.StringReader(xml)
Dim reader As XmlReader = XmlReader.Create(tr)
Dim serializer As XmlSerializer = New XmlSerializer(GetType(T))
If serializer.CanDeserialize(reader) Then
result = CType(serializer.Deserialize(reader), T)
End If
End If
Return result
End Function
Я хотел бы десериализовать следующий XML
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<apiResponse version="1.0">
<areaOfControlResponse>
<aocs>
<aoc id="5840" name="ABE" address="BS16 2PX, United Kingdom"/>
<aoc id="7626" name="MAIN" address="Willow Bed Close 45, BS16 XXX, United Kingdom"/>
<aoc id="7629" name="test" address="X Road, BS16, United Kingdom"/>
</aocs>
</areaOfControlResponse>
</apiResponse>
Я создал объект, подобный этому
Imports System.Xml.Serialization
Namespace AreaOfControlResponseClasses
<XmlType(TypeName:="apiResponse")>
Public Class AreaOfControlApiResponse
<XmlArray("areaOfControlResponse")>
Public Property AreaOfControlResponse As List(Of AOCS)
End Class
<XmlType(TypeName:="aocs")>
Public Class AOCS
<XmlArray("aoc")>
Public Property AreaOfControl As List(Of AOC)
End Class
Public Class AOC
'<XmlElement("aoc")>
'Public Property Aoc As String
<XmlAttribute("id")>
Public Property AOCID As String
<XmlAttribute("name")>
Public Property AOCName As String
<XmlAttribute("address")>
Public Property AOCAddress As String
End Class
End Namespace
Когда я десериализую, я вижу один AreaOfcontrolResponse, и внутри него у меня есть AreaOfControl, который пуст.Я думаю, что мой объект не определен правильно, поэтому десериализация не удалась.Может кто-нибудь указать мне правильное направление, пожалуйста.