关于上一个问题的新问题
之前的问题是:
我必须填充一些包含30-50属性的对象,从几个linq到xml结果
有没有办法填充这些对象,而无需为每个属性手动编写每个特定的 prop = value ?
一种
(from xml in myXml select xml).ToList<Object>;
在select中,是否可以使用反射根据xml字段的名称为我的对象赋值?
答案 0 :(得分:0)
您无法明确避免应对值。
如果你有大量的字段,我宁愿坚持使用Xelement并在需要时从中读取值而不是将其转换为对象
答案 1 :(得分:0)
如果您的类要创建具有一致XML映射的实例,则可以使用其中一个.NET序列化框架代替LINQ to XML或与LINQ to XML结合使用。例如,如果您正在使用数据协定序列化,那么给定此类:
[DataContract]
public class MySerializableObject
{
[DataMember]
public string PropertyA { get; set; }
[DataMember]
public int PropertyB { get; set; }
}
您可以使用以下代码:
using (var someStream = OpenXmlStream())
{
var deserializer = new DataContractSerializer(
typeof(List<MySerializableObject>));
var myList = deserializer.ReadObject(someStream)
as List<MySerializableObject>;
}