两个类中的属性名多数相同,将一个类的实例中的属性值遍历赋值给另一个

这里用了很多反射的知识

 

将Shop shopInfo中的同名属性 赋值给 TB_SHOP_ITEM tbShopItem 的属性

private void GetPropertyValue(Shop shopInfo, TB_SHOP_ITEM tbShopItem)
{
Type typeItem = shopInfo.GetType();
Type typeTbItem = tbShopItem.GetType();
foreach (PropertyInfo p in typeItem.GetProperties()) //遍历Item实例中的各个属性
{
if (typeTbItem.GetProperty(p.Name) != null) //若果TB_ITM_ITEM类含有当前属性
{
PropertyInfo tbItemProperty = typeTbItem.GetProperty(p.Name);
PropertyInfo itemProperty = typeItem.GetProperty(p.Name);
object obj = itemProperty.GetValue(shopInfo);//得到typeItem 指定属性名的值

tbItemProperty.SetValue(tbShopItem, obj);//设置typeTbItem 指定属性名的值

}
}
}

posted @ 2014-12-04 14:40  潋滟碧水醉落花  阅读(55)  评论(0)    收藏  举报