在C#中将XML字符串解析为类?

可能重复:
如何反序列化XML文档

假设我在C#中有一个这样定义的类:

public class Book { public string Title {get; set;} public string Subject {get; set;} public string Author {get; set;} } 

假设我有这样的XML:

  The Lorax Children's Literature Theodor Seuss Geisel  

如果我想使用此XML实例化Book类的实例,我知道这样做的唯一方法是使用XML Document类并枚举XML节点。

.net框架是否提供了一些使用XML代码实例化类的方法? 如果没有,实现这一目标的最佳做法是什么?

您可以使用XML序列化从XML创建类的实例:

 XmlSerializer serializer = new XmlSerializer(typeof(Book)); using (StringReader reader = new StringReader(xmlDocumentText)) { Book book = (Book)(serializer.Deserialize(reader)); } 

有几种方法可以反序列化XML文档 – 位于System.Xml.SerializationXmlSerializerSystem.Runtime.Serialization较新的DataContractSerializer

两者都要求您使用告诉序列化程序如何操作的属性来装饰您的类成员(每个属性的不同属性)。