使用Linq自动填充对象到XML

时间:2011-11-14 08:05:21

标签: c# .net xml linq

我有一个使用visual studio xsd.exe从XML文档创建的对象。有没有办法用XML文档的内容填充此对象的实例,而无需手动设置每个属性/属性?

例如:

XElement doc = XElement.Parse(docStr);
var results = from e in doc.Elements("myobj")
              select new MyObj { prop1 = (string) e.Attribute("prop1") };

我已经从文档本身生成了MyObj,并且设置此文档中的每个属性时,如果有很多属性,则会相当冗长。有没有办法让Linq自己解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果您通过xsd.exe创建了类型(根据问题),那么执行此操作的方法是使用XmlSerializer

var ser = new XmlSerializer(typeof(MyObj));
var obj = (MyObj)ser.Deserialize(source);

可以尝试使用LINQ-to-XML来实现它,但它实际上只是为了很少的目的而重新实现XmlSerializer