【IT168技术文档】
  有时候我们需要复制一个实体类,而又不希望两个使用同一个内存地址,我用了很简单的反射来实现这种功能:

/** <summary>
/// 设置实体对象的修改属性
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>public void CloneEntityObject(object srcObj, object desObj)
{
if (srcObj.Equals(desObj))
{
return;
}
if (srcObj.GetType() != desObj.GetType())
{
return;
}
System.Reflection.PropertyInfo[] info = srcObj.GetType().GetProperties();
foreach (System.Reflection.PropertyInfo property in info)
{
desObj.GetType().GetProperty(property.Name).SetValue(desObj,
srcObj.GetType().GetProperty(property.Name).GetValue(srcObj, null), null);
}
}

可以将实体类直接继承ICloneable接口,并用如上方法来实现Clone()方法.
  现在有不少架构直接使用自动代码生成器,也可以不使用反射直接每个属性值进行拷贝亦可。

转载于:https://www.cnblogs.com/mrchenzh/archive/2010/05/31/1747953.html

[转]一个简单的反射拷贝一份新的实体类相关推荐

  1. 一个简单的反射拷贝一份新的实体类

    有时候我们需要复制一个实体类,而又不希望两个使用同一个内存地址,我用了很简单的反射来实现这种功能:) /**//// <summary>         /// 设置实体对象的修改属性   ...

  2. Hibernate的多表查询,分装到一个新的实体类中的一个方法

    不知道是否还有其他方法实现,请高人指点. 如果涉及到多张表多字段查询,并且想利用查询出来的字段在界面层构建一个新的实体类,可以使用这种方法: 如果查询出来的多字段中,有多个字段的名字都相同(如想查询出 ...

  3. 如何创建一个简单的API,建议萌新食用。

    1.明确思路 API是提供数据的接口,也可以理解为是一个方法,不过这个方法是对外公开的,可以通过Http请求来调用: 我们首先要知道的是数据都是存在数据里面的,所以我们需要一个访问数据的帮助类来提升我 ...

  4. python映射实体类_【HIBERNATE框架开发之二】第一个HIBERNATE-ANNONATION项目(采用@ENTITY、@ID直接映射实体类)...

    紧接上一篇,这里Himi直接copy上一篇创建的HelloHibernate项目,然后改名为:HelloAnnonation,Ok: OK,准备工作: 首先第一步,继续再我们自定义的user libr ...

  5. 使用反射将req.getParameterMap()赋值给实体类

    这是一个将Map<String, String[]> 类型的map集合赋值给一个实体类. 这个map集合是以   map={ key1 = {value1 , value2} ,key2= ...

  6. C#利用反射将Datatable转化为指定实体类ListT

    背景介绍 在软件开发中肯定免不了和数据库打交道,我们对数据的增删改查最终会转化为SQL在数据库中执行.从SQLServer中查出数据一般有两种方式:一是ADO.NET直接写SQL语句从数据中查出数据, ...

  7. 使用Netty实现的一个简单HTTP服务器

    为什么80%的码农都做不了架构师?>>>    使用Netty实现的一个简单HTTP服务器 1.HttpServer,Http服务启动类,用于初始化各种线程和通道 public cl ...

  8. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...

    程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据 ...

  9. wps流程图导出不清楚_一份清晰的“流程图”,无需专业软件,一个简单Word轻松搞定...

    制作流程图前我们需要三个准备,但当我们所有准备完成后,就是一定要亲自去实操,否则只能是空想,在实际操作时却不知道该从何入手,就好比现在自己需要画一个简单的流程图,应该在哪里操作呢? 一般情况分为两种, ...

最新文章

  1. linux管道的执行顺序
  2. golang中的消息认证
  3. mybaits八:select查询返回map集合
  4. close和shutdown的区别
  5. 骚操作!用Python自动下载抖音美丽小姐姐(有对象的同学小心尝试!)
  6. std::ostream_iterator、std::cout、std:copy实现输出
  7. qt开发环境 - 丁林松教程,丑陋的计算器
  8. iOS持久化存储-CoreData简介
  9. Spring Security3源码分析-http标签解析(转)
  10. 交叉渡线道岔规格_交叉渡线铁路道岔的型号及选用
  11. php公众号客服消息图文,微信公众号开发系列-发送客服消息(示例代码)
  12. jQuery jsonp跨域请求
  13. Linux网络实时流量监测工具iftop的安装使用
  14. linux下socket调试,linux 下的socket 调试工具 netcat 使用
  15. 【BIRT】02_开发一张简单的报表
  16. Android-HelloWorld
  17. Open Source Drives IOT From Device to Edge
  18. 2018软工个人总结
  19. 服务器80端口找不到,如何查询服务器80端口被关闭
  20. 分析报告 | 在线教育APP的市场到底有多大?

热门文章

  1. MC34063组成DC-DC电路
  2. 正则表达式 (re包)——python(快餐)
  3. PHP正则表达式怎么匹配多行
  4. 【JavaEE企业应用实战学习记录】struts配置文件详细解析
  5. [转]C#读写xml文件
  6. 使用IKE预共享密钥配置IPsec
  7. linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法
  8. android系统sharedUserId: SYSTEM_UID+PHONE_UID+BLUETOOH_UID+LOG_UID+NFC_UID
  9. 【Android】adb架构(客户端(shell/ddms/adt)+本地服务器+daemon)
  10. CSS3 box-sizing(content-box:width指内容 border-box:width指border+padding+content)