2010-08-31 55 views
0

關於前一個問題是否可以在選擇的LINQ2XML中進行反射?

前一個問題是新問題:

我必須填充包含從幾個的LINQ to XML 30-50財產幾個對象產生

是有辦法填充這些對象而無需手動編寫每個屬性的每個屬性prop =值

在選擇一種

(from xml in myXml select xml).ToList<Object>; 

,是否有可能使用反射基於XML字段的名稱值賦給我的對象?

回答

0

需要,而當如果你的類你想創建實例都具有一致的XML映射,您可以使用.NET序列化框架之一來代替或結合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>; 
} 
0

您無法明確避免應對值。
如果你有一個大的無場的我寧願持有到的XElement,並從它的讀取值和比它轉換成對象

相關問題