我有一个班级Foo
(假设适当的using
指令)
namespace Example
{
[XmlRoot("foo")]
class Foo
{
public Foo() {}
[XmlElement("name")]
public string Name;
}
}
XmlSerializer可以像这样处理XML以生成Foo
类型的对象
<foo>
<name>BOSS</name>
</foo>
我可以做的最小工作量是什么让XmlSerializer处理这种形式的XML,
<foos>
<foo>
<name>BOSS</name>
</foo>
<foo>
<name>NOT A BOSS</name>
</foo>
</foos>
并生成一组Foo
个对象?
编辑:
我是如何为单个Foo
做的:
var xr = new XmlTextReader("foo.xml");
var xs = new XmlSerializer(typeof(Foo));
var a = (Foo) xs.Deserialize(xr);
Foo[]
var xr = new XmlTextReader("foos.xml");
var xs = new XmlSerializer(typeof(Foo[]));
var a = (Foo[]) xs.Deserialize(xr);
答案 0 :(得分:5)
据我所知最简单。添加另一个类Food并从类Foo中删除xml根标记。
namespace Example
{
[XmlRoot("foos")]
class Foos
{
public Foos() {}
[XmlElement("foo")]
public List<Foo> FooList {get; set;}
}
}