serialize serializar net into example deserializar c# .net xml-serialization

c# - serializar - system xml serialization xmlserializer vb net



Deserialización en una lista sin un elemento contenedor en XML (1)

Utilizar

[XmlElement("result")] public List<Result> Results { get; set; }

En todos los ejemplos que he visto sobre el uso de XmlSerializer cada vez que ocurre una lista o una matriz, tiene algún tipo de elemento contenedor como este:

<MyXml> <Things> <Thing>One</Thing> <Thing>Two</Thing> <Thing>Three</Thing> </Things> </MyXml>

Sin embargo, el XML que tengo no tiene un contenedor similar a las cosas anteriores. Simplemente comienza a repetir elementos. (Por cierto, el XML es en realidad de la API Geocode de Google)

Entonces, tengo un XML que se ve así:

<?xml version="1.0" encoding="UTF-8"?> <GeocodeResponse> <status>OK</status> <result> <type>locality</type> <type>political</type> <formatted_address>Glasgow, City of Glasgow, UK</formatted_address> <address_component> <long_name>Glasgow</long_name> <short_name>Glasgow</short_name> <type>locality</type> <type>political</type> </address_component> <address_component> <long_name>East Dunbartonshire</long_name> <short_name>East Dunbartonshire</short_name> <type>administrative_area_level_3</type> <type>political</type> </address_component> <!-- etc... --> </result> <result> <!-- etc... --> </result> <result> <!-- etc... --> </result> </GeocodeResponse>

Como puede ver dentro del resultado, el elemento de tipo se repite sin ningún elemento de tipo que XmlSerializer parezca esperar (o al menos todos los documentos y ejemplos que he visto). Lo mismo ocurre con el _address_component_.

El código que tengo actualmente se ve algo como esto:

[XmlRoot("GeocodeResponse")] public class GeocodeResponse { public GeocodeResponse() { this.Results = new List<Result>(); } [XmlElement("status")] public string Status { get; set; } [XmlArray("result")] [XmlArrayItem("result", typeof(Result))] public List<Result> Results { get; set; } }

Cada vez que intento deserializar el XML obtengo cero elementos en mi Lista de resultados .

¿Puede sugerir cómo puedo hacer que esto funcione, ya que actualmente no lo veo?