C# 用C.NET3.5实现XML反序列化
我有这个XML文件C# 用C.NET3.5实现XML反序列化,c#,asp.net,xml,serialization,C#,Asp.net,Xml,Serialization,我有这个XML文件 <?xml version="1.0" standalone="yes"?> <Root> <Object> <referenceName>People</referenceName> <query>select * from people</query> </Object> <Object> &l
<?xml version="1.0" standalone="yes"?>
<Root>
<Object>
<referenceName>People</referenceName>
<query>select * from people</query>
</Object>
<Object>
<referenceName>Countries</referenceName>
<query>select * from countries</query>
</Object>
</Root>
我需要用C转换成一个对象
我不知道怎么做。
请注意,我可以在xml文件中有很多对象
我知道我必须使用[XMLArray…”
感谢使用开始。一旦你有了这些,如果需要,调整生成的类并使用反序列化回到运行时对象中。这里最简单的技巧是在VS命令行:
xsd example.xml
xsd example.xsd /classes
Et voila;示例C中的一个example.cs文件显示了如何通过XmlSerializer从.NET对象获取xml
在这种情况下,我希望以下方法可以奏效:
public class Root
{
[XmlElement("Object")]
public List<SomeOtherObject> Objects { get; set; }
}
public class SomeOtherObject
{
[XmlElement("referenceName")]
public string Name { get; set; }
[XmlElement("query")]
public string Query { get; set; }
}
实际上,这里没有[XmlArray]的用法……请参见答案中的示例。
XmlSerializer ser = new XmlSerializer(typeof(Root));
using (XmlReader reader = XmlReader.Create(
new StringReader(xml)))
{
var obj = (Root)ser.Deserialize(reader);
// use obj
}