Sus clases gustaría como esto
[XmlRoot("StepList")]
public class StepList
{
[XmlElement("Step")]
public List<Step> Steps { get; set; }
}
public class Step
{
[XmlElement("Name")]
public string Name { get; set; }
[XmlElement("Desc")]
public string Desc { get; set; }
}
Aquí es mi testcode.
string testData = @"<StepList>
<Step>
<Name>Name1</Name>
<Desc>Desc1</Desc>
</Step>
<Step>
<Name>Name2</Name>
<Desc>Desc2</Desc>
</Step>
</StepList>";
XmlSerializer serializer = new XmlSerializer(typeof(StepList));
using (TextReader reader = new StringReader(testData))
{
StepList result = (StepList) serializer.Deserialize(reader);
}
Si desea leer un archivo de texto que debe cargar el archivo en un FileStream y deserializar esto.
using (FileStream fileStream = new FileStream("<PathToYourFile>",FileMode.Open))
{
StepList result = (StepList) serializer.Deserialize(fileStream);
}
[XmlElement ("paso")] es la clave - para eliminar el "paso" que anidan en XML ( ...) –
avs099
no entiendo. Seguro '[XmlElement (" Paso ")]' es la clave, es correcto. Lo que quiere decir con "- para eliminar el" paso "de anidamiento en XML ( ...)". ¡Gracias! –
dknaack
no fuera por ti, pero para otros que pueden estar leyendo esta respuesta :) si no tiene [XmlElement] continuación XML resultante será así: Nombre1 Nombre2 . Me tomó un tiempo hace algún tiempo descubrir cómo eliminar el bloque externo . –
avs099