从XML实现对实体赋值
#region 遍历子节点
foreach (XmlNode treeNode in subNode.ChildNodes)
{
if (treeNode.Name == "orders")//取子订单
{
Taobao_Orders order = new Taobao_Orders();
foreach (XmlNode fourNode in treeNode.ChildNodes)
{
Type t = order.GetType();//取实体类的类型集合
foreach (var pi in t.GetProperties())//制作反射机制对实体进行赋值
{
if (pi.Name == orderitem.Name)//判断实体类名是否与XML的名相同
{
if (!pi.PropertyType.IsGenericType)//对实体类属性赋值
{
pi.SetValue(order, Convert.ChangeType(orderitem.InnerText, pi.PropertyType), null);
}
else
{
pi.SetValue(order, Convert.ChangeType(orderitem.InnerText, Nullable.GetUnderlyingType(pi.PropertyType)), null);
}
}
}
}
trade.Taobao_Orders.Add(order);
}
}