你的类应该喜欢这样
[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; }
}
这是我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);
}
如果你想读的文本文件,你应该将文件加载到一个FileStream 和反序列化这一点。
using (FileStream fileStream = new FileStream("<PathToYourFile>",FileMode.Open))
{
StepList result = (StepList) serializer.Deserialize(fileStream);
}
[的XmlElement( “步”)是关键 - 删除 “台阶” 在XML嵌套( ...) –
avs099
我不明白。当然'[XmlElement(“Step”)]'是关键,是对的。你的意思是“ - 删除”step“嵌套在XML中( ...)”。谢谢! –
dknaack
它不是为你,但别人谁可能来读这个答案:)如果你没有[的XmlElement],然后生成的XML将是这样的:名1 名2 。前段时间我花了一段时间才弄清楚如何去除外部块。 –
avs099