知识大全 运用反射给实体赋值

Posted 属性

篇首语:人人都曾经错过,真正属于你的,永远不会错过。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 运用反射给实体赋值相关的知识,希望对你有一定的参考价值。

  在系统开发过程中 有一些代码是必须反复 写的 比如实体的赋值过程(不用实体的免看)

  Eg: XXX xxx=XXX

  虽然可以通过codesmith来生成赋值 但是免不了代码冗长 如果是根据数据库生成的话 我们还要删除非必要的属性 而且过分依赖数据库

  特别是当你需要不同实体之间进行相同属性拷贝时 你必须一个属性一个属性赋值 实在太烦了

  我在做个java项目时无意发现了一个PropertyUtils类 就是用来属性复制的类 探究原理之后 发现其里也是同样可以实现的

<的反射就是实现的办法. using system.reflection;< p>

  /// <summary>  /// 对象属性拷贝(全匹配拷贝)  /// </summary>  /// <param name=obj1>源对象</param>  /// <param name=obj2>目标对象</param>  /// <returns>目标对象</returns>  public static object PropertyCopy(object obj1,object obj2)     Type souType=obj1.GetType();   Type tarType = obj2.GetType();   PropertyInfo[] pis=souType.GetProperties(BindingFlags.Public | BindingFlags.Instance);   if(null!=pis)       foreach(PropertyInfo pi in pis)         string propertyName=pi.Name;     PropertyInfo pit=tarType.GetProperty(propertyName);     if(pit !=null)           pit.SetValue(obj2,pi.GetValue(obj1,null),null);               return obj2;

  

  实际上可以只传两个Type进来也可以的.

  但是这个有个问题,就是当两个实体的同名属性类型不匹配时,会抛意外.我这个只是个例子,没有try出来.

  基本原理就是这样子.呵呵.我的代码风格一般,估计看坏大家的眼睛了.

  我自己做了个类似Nhibernate的数据绑定(暂时支持单表),完善ing.呵呵有空再切磋咯

cha138/Article/program/net/201311/11457

相关参考

知识大全 asp.net 使用存储过程时参数为空时的处理

  在写插入新记录的存储过程时存储过程的参数一般和实体类的属性对应  但在前台接收数据时不一定需要所有的实体类属性这样就有一些属性没有被赋值如果这些属性是引用类型而又没有被初始化在给存储过程参数赋值时

知识大全 添加后台list给前台select标签赋值简单实现

本文为大家介绍下通过添加后台list怎么实现给前台select标签赋值具体代码如下感兴趣的朋友可以参考下哈 复制代码代码如下:$ajax(url:"user!findUserListacti

知识大全 C++把一个字符串用指针赋值给另一个字符串

C++把一个字符串用指针赋值给另一个字符串  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!C++把一个

知识大全 实体店买的东西不给退货怎么办

实体店买的东西不给退货怎么办除非实体店在的商场或市场有明文规定(X天无条件退货),否则没违反国家三包的,一律都不准退换。就算是店主亲口承诺也没用,除非你用手机录音功能事先录下来作为证据。评论|6实体店

知识大全 Java变量的赋值

Java变量的赋值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  赋值是用等号运算符(=)进行的

党的十八大指出,要大力发展实体经济,实行更加有利于实体经济的政策措施,为促进实体经济的发展,政府可采取多种手段。下列选项

党的十八大指出,要大力发展实体经济,实行更加有利于实体经济的政策措施,为促进实体经济的发展,政府可采取多种手段。下列选项中,属于经济措施的有_____。①颁发高新技术企业营业执照,推广高新技术运用②加

知识大全 简捷PHP数组赋值方法详解

简捷PHP数组赋值方法详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PHP数组还是比较常用

知识大全 Cookies 赋值 、读取、删除设置过期时间

Cookies赋值、读取、删除设置过期时间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  设置过

知识大全 SELECT赋值与ORDERBY冲突的问题

SELECT赋值与ORDERBY冲突的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  问题描

色彩在室内设计中如何运用?

色彩在室内设计中如何运用?色彩和室内每一物体的材料、质地是紧密相联的。色彩引起的视觉效果主要反映在物理性质方面,如:冷暖、远近、轻重、大小等。这不但是由于物体本身对光的吸收和反射不同,而且还由于物体相