klasach chciałbym tak
[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; }
}
Oto moja 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);
}
Jeśli chcesz przeczytać plik tekstowy należy załadować plik do FileStream i deserializowania to.
using (FileStream fileStream = new FileStream("<PathToYourFile>",FileMode.Open))
{
StepList result = (StepList) serializer.Deserialize(fileStream);
}
[XmlElement ("Step")] jest kluczem - aby usunąć "krok" zagnieżdżanie w XML ( ...) –
avs099
Nie rozumiem. Oczywiście '[XmlElement (" Step ")]' jest kluczem, ma rację. Co rozumiesz przez "- usunięcie" kroku "zagnieżdżanie w XML ( ...)". Dziękuję Ci! –
dknaack
to nie dla ciebie, ale dla innych, którzy mogą być przeczytaniu tej odpowiedzi :) Jeśli nie masz [XmlElement] Następnie otrzymaną XML będzie tak: Nazwa1 name2 . Zajęło mi trochę czasu, aby dowiedzieć się, jak usunąć zewnętrzny blok . –
avs099