[转]一个简单的反射拷贝一份新的实体类
【IT168技术文档】
有时候我们需要复制一个实体类,而又不希望两个使用同一个内存地址,我用了很简单的反射来实现这种功能:
可以将实体类直接继承ICloneable接口,并用如上方法来实现Clone()方法./**//// <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); } }
现在有不少架构直接使用自动代码生成器,也可以不使用反射直接每个属性值进行拷贝亦可。
posted on 2010-05-31 10:29 刺客mrchenzh 阅读(355) 评论(0) 编辑 收藏 举报