反射 实体类的赋值/取值问题
来源:互联网 发布:淘宝商业模式分析 编辑:程序博客网 时间:2024/05/16 05:19
前段时间遇到个很郁闷的情况,2个实体类里面的属性字段都差不多。唯一不同的就是一个类比另一个类多几个字段
View Code
现在要将A类的值赋给B类
如果说一个字段一个字段赋值,那样子觉得写得太死了。但是一下子还没想出什么好方法,只有用反射了。。
1 2 /// <summary> 3 /// 实体类赋值 4 /// </summary> 5 /// <param name="filename">属性名</param> 6 /// <param name="comment">源实体类</param> 7 /// <param name="commenturl">目的实体类</param> 8 /// <returns></returns> 9 private CommentUrl switchType(string filename, A a, B b)10 {11 12 Type aType = A.GetType();13 Type bType = B.GetType();14 string type = bType.GetProperty(filename).PropertyType.Name;//得到数据类型15
//如果a中该字段为空,则返回16 if (bType.GetProperty(filename).GetValue(a, null) == null)17 return b;18 19 switch (type) 20 {21 case "Int32":22 int nValue = Convert.ToInt16(aType.GetProperty(filename).GetValue(a, null));//获取a对象中的值23 b.GetProperty(filename).SetValue(b, nValue, null);//赋值给b对象24 break;25 26 case "String":27 string sValue = aType.GetProperty(filename).GetValue(a, null).ToString();28 b.GetProperty(filename).SetValue(b, sValue, null);29 break;30 case "DateTime":31 DateTime dValue = Convert.ToDateTime(aType.GetProperty(filename).GetValue(a, null));32 b.GetProperty(filename).SetValue(b, dValue, null);33 break;34 case "Boolean":35 bool bValue = Convert.ToBoolean(aType.GetProperty(filename).GetValue(a, null));36 b.GetProperty(filename).SetValue(b, bValue, null);37 break;38 }39 40 return b;41 }42 43 //调用此类,已存在 a 对象,将a中的属性值,依次赋给b44 B b = new B();45 PropertyInfo[] info = typeof(A).GetProperties();46 //循环属性47 foreach (PropertyInfo fileinfo in info)48 {49 b = switchType(fileinfo.Name, a, b);50 }
0 0
- 反射 实体类的赋值/取值问题
- java 反射实现实体类的属性赋值
- 反射技术实现DataTable到实体类的赋值操作
- 关于在Java使用反射对属性取值和赋值的性能问题。
- java反射给实体类赋值
- 利用反射实现实体类自动赋值
- Java反射 - 简单的给Bean赋值和取值
- CheckGroupBox的取值和赋值问题
- 运用反射给实体赋值
- 从数据库读取数据后利用反射为对应的实体类的属性赋值
- js赋值取值问题
- 反射获取实体类的get和set 组装成赋值方式 可以提高开发
- java中遍历实体类属性和类型、赋值和取值
- java反射遍历实体类属性和类型,并赋值和获取值
- java反射遍历实体类属性和类型,并赋值和获取值
- c# 利用反射动态给实体类对象赋值
- c# 利用反射动态给实体类对象赋值
- nhibernate实体类主键ID赋值问题
- Zedboard---实验四驱动7段数码管
- CSDN博客转载方法
- Java--collection与map
- OpenCV中数据类型和常用数据类型对应关系
- cocos2dx lua向c++传字符串问题
- 反射 实体类的赋值/取值问题
- iOS10下在UIWebView加载页面, WF: _WebFilterIsActive returning: NO
- 设计模式之工厂模式
- 微服务架构多“微”才合适?
- jquery ajax实例教程和一些高级用法
- git学习总结记录
- iOS 来电阻止和身份识别二
- 最长公共子序列(LCS)和最长公共连续子串
- Redis解析之集群数据结构