2010-11-10 66 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

相关问题