2010-11-10 97 views
0
var block = (from query in data.Descendants("block") 
      where query.Element("itemid").Value == argID.ToString() 
      select new Block 
      { 
       Name = (string)query.Element("name"), 
       ItemID = (int)query.Element("itemid"), 
       Description = (string)query.Element("description") 
      } 
      ).Single(); 

我是否需要定義XML文檔中的所有字段?還是有一個更簡單的方法,因爲我已經定義了塊。我是否需要定義XML對象中的所有元素?

public class Block 
    { 
     int itemid; 
     string name; 
     string description; 


     public string Name 
     { 
      get { return name; } 
      set { name = value; } 
     } 

     public int ItemID 
     { 
      get { return itemid; } 
      set { itemid = value; } 
     } 

     public string Description 
     { 
      get { return description; } 
      set { description = value; } 
     } 

     public string Price 
     { 
      get { return price; } 
      set { price= value; } 
     } 
    } 

回答

1

如果你的意思是你必須把xml文件中的所有東西放到你的對象中,答案是否定的。

您可以從xml中將您想要的內容填充到模型中。

關於您的對象,無論您是否需要在目標對象中填充所有內容,答案也不是,除非您的域對象必須滿足規則,但該代碼在您的控制中。

+0

但是,從我的xml使用一個字段,我需要把它放到正確的對象? – Landmine 2010-11-10 01:52:00

+1

你需要把它放在「一個」對象中。既然你正在創建一個Block,你可以將它添加到Block,如果Block對此有意義的話。或者,您可以創建一箇中介類型來表示您拉入的域數據,然後將數據分成不同的對象。或者你可以將它加載到匿名類型中。 Jon Skeet在這裏的一個例子。 http://stackoverflow.com/questions/3344133/selecting-distinct-objects-from-collection-of-objects-using-lambda-expressions – 2010-11-10 02:12:32

+0

感謝您花時間解釋這一點。 – Landmine 2010-11-10 02:14:43

相關問題