利用反射实现实体类自动赋值
2016-03-25 16:04
465 查看
从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); } }
相关文章推荐
- 从源代码的角度分析--在BaseAdapter调用notifyDataSetChanged()之后发生了什么
- 2.3.1(extra)
- 2.3.2(wonderful)
- 那些年我们一起追过的缓存写法(一)
- Android实现插件化(热加载)和插件加密
- leetcode之 coin change
- tungsten内存分析
- 机器学习基础(二十)—— 数学语言与 Python 代码
- 码农小汪-struts2学习4-struts.xml 常用配置解析
- 操作系统典型调度算法
- java对象转换String类型
- 2.2.3
- 2.2.4(wonderful)
- HttpClient4.5简单使用
- min-height在安卓下不起作用
- 工作流设计
- 进程间通信--信号(进程间通信唯一的异步方式)
- 2.2.1(wonderful)
- 2.2.2(wonderful)
- 解决Android-PullToRefresh模块引用问题