我有一个类 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);
最佳答案
据我所知,这是最简单的。添加另一个类 Foos 并从类 Foo 中删除 xmlroot 标记。
namespace Example
{
[XmlRoot("foos")]
class Foos
{
public Foos() {}
[XmlElement("foo")]
public List<Foo> FooList {get; set;}
}
}
关于c# - 使用 C# 从 XML 反序列化对象数组/序列的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5239823/