我有一个使用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自己解决这个问题?
答案 0 :(得分:2)
如果您通过xsd.exe
创建了类型(根据问题),那么执行此操作的方法是使用XmlSerializer
:
var ser = new XmlSerializer(typeof(MyObj));
var obj = (MyObj)ser.Deserialize(source);
你可以尝试使用LINQ-to-XML来实现它,但它实际上只是为了很少的目的而重新实现XmlSerializer
。