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

/**//// <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()方法.
现在有不少架构直接使用自动代码生成器,也可以不使用反射直接每个属性值进行拷贝亦可。

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

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

    [IT168技术文档]   有时候我们需要复制一个实体类,而又不希望两个使用同一个内存地址,我用了很简单的反射来实现这种功能: /** <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. 将一个对象相同的属性(不区分大小写)赋值给一个新对象 DataTable的一个简单的扩展...

    将一个对象相同的属性(不区分大小写)赋值给一个新对象 1 public static T Mapper<S, T>(S source)2 {3 T t = Activator.Create ...

最新文章

  1. vuerouter3种模式_Vue-router的三种传参方式
  2. C++模拟游戏中鼠标点击和键盘按键
  3. MVC的增删改和Razor
  4. 数据库时间内接受的是lang类型的时间 分为三种字段 第一种只存日期 第二种存日期+时间 第三种时间戳...
  5. java和c语言的区别_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...
  6. 基于接缝裁剪的图像压缩 算法导论
  7. python 通过ip获取城市_python 根据ip获取地理位置
  8. python爬虫好学不_python爬虫好学吗
  9. java 对文件名非法字符处理
  10. mysqludf_json将关系数据以JSON编码
  11. 【iOS】 app 的优化
  12. LoadRunner 常用函数大全+1
  13. Android面试题收集(有具体答案)
  14. Win10 通过重置来修复系统的方法
  15. ios手机号和邮箱(支付宝账号)脱敏
  16. JavaScript测试工具对决:Sinon.js vs testdouble.js
  17. Xshell6 提示要使用此程序,您必须应用最新的更新或使用新版本
  18. html的img标签repeat,border-image-repeat属性怎么用
  19. 什么是字母表和串---编译原理
  20. 独家对话徐翔妻子:我为什么起诉离婚

热门文章

  1. 洛谷 P4706 取石子 解题报告
  2. wpf中xaml的类型转换器与标记扩展
  3. TCP / IP协议 --- 用户层面
  4. 软件工程(1)——对书本的温习
  5. servlet向ajax传递list数据类型,ajax向servlet传递array数据类型
  6. 【转载】防范SQL注入式攻击
  7. ibatis自动生成插件
  8. 笔记本高分屏字体模糊_高色域+高分辨率轻薄本推荐,你需要2K屏笔记本电脑么?...
  9. C语言经典例67-数组最大值与最小值与数组元素交换
  10. C语言经典例26-利用递归方法求阶乘