zoukankan      html  css  js  c++  java
  • 一个简单的反射拷贝一份新的实体类

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

    /// <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()方法.
    现在有不少架构直接使用自动代码生成器,也可以不使用反射直接每个属性值进行拷贝亦可。
  • 相关阅读:
    互联网架构 高可用和高并发 (转)
    mysql数据库索引
    SQL小结
    limit小结
    JDK8 元空间
    OpenStack基础知识
    shell 发送所有内容到会话
    通过word给博客园发布文章教程
    centos7.4安装过程
    Zabbix 调整告警发送的内容格式
  • 原文地址:https://www.cnblogs.com/syveen/p/297176.html
Copyright © 2011-2022 走看看