博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的反射拷贝一份新的实体类
阅读量:5329 次
发布时间:2019-06-14

本文共 737 字,大约阅读时间需要 2 分钟。

有时候我们需要复制一个实体类,而又不希望两个使用同一个内存地址,我用了很简单的反射来实现这种功能:)
ExpandedBlockStart.gif
ContractedBlock.gif
/**/
/// <summary>
InBlock.gif        
/// 设置实体对象的修改属性
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="obj"></param>
ExpandedBlockEnd.gif        
/// <returns></returns>
None.gif
        
public
 
void
 CloneEntityObject(
object
 srcObj, 
object
 desObj)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif
{
InBlock.gif            
if (srcObj.Equals(desObj))
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
return;
ExpandedSubBlockEnd.gif            }
InBlock.gif            
if (srcObj.GetType() != desObj.GetType())
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
return;
ExpandedSubBlockEnd.gif            }
InBlock.gif            System.Reflection.PropertyInfo[] info 
= srcObj.GetType().GetProperties();
InBlock.gif            
foreach (System.Reflection.PropertyInfo property in info)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                desObj.GetType().GetProperty(property.Name).SetValue(desObj,
InBlock.gif                    srcObj.GetType().GetProperty(property.Name).GetValue(srcObj, 
null), null);
ExpandedSubBlockEnd.gif            }
ExpandedBlockEnd.gif        }
None.gif
也可以将实体类直接继承ICloneable接口,并用如上方法来实现Clone()方法.
现在有不少架构直接使用自动代码生成器,也可以不使用反射直接每个属性值进行拷贝亦可。

转载于:https://www.cnblogs.com/syveen/archive/2005/12/14/297176.html

你可能感兴趣的文章
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>