我是否需要定义XML对象中的所有元素?
问题描述:
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; }
}
}
答
如果你的意思是你必须把xml文件中的所有东西放到你的对象中,答案是否定的。
您可以从xml中将您想要的内容填充到模型中。
关于您的对象,无论您是否需要在目标对象中填充所有内容,答案也不是,除非您的域对象必须满足规则,但该代码在您的控制中。
但是,从我的xml使用一个字段,我需要把它放到正确的对象? – Landmine 2010-11-10 01:52:00
你需要把它放在“一个”对象中。既然你正在创建一个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
感谢您花时间解释这一点。 – Landmine 2010-11-10 02:14:43