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()方法.
现在有不少架构直接使用自动代码生成器,也可以不使用反射直接每个属性值进行拷贝亦可。
愿一路奔跑不退缩,到目前一直从事.Net的B/S,C/S企业应用研发
查看全文
相关阅读:
在PictureBox中打开图片文件
while和do-while语句的异同之处
if选择语句与switch选择语句的比较、区别及应用场景
二进制数的原码 反码 补码的作用及转换
一篇文章看懂二进制、八进制、十进制、十六进制数据转换
ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别(转载)
百钱买百鸡问题
鸡兔同笼问题
用for循环打印九九乘法表(for嵌套循环)
用*号打印直角三角形(正反)
原文地址:https://www.cnblogs.com/syveen/p/297176.html
最新文章
vim操作
MySQL的事务的隔离级别以及修改方式
Haystack全文检索框架中使用jieba分词包
Django2.X兼容 集成user.is_authenticated
Django2.X 数据库驱动PyMySQL兼容
Django2.X middleware中间件兼容 书写格式
django2.X 路由兼容 include模块书写规范
django2.X 模型类兼容 外键关联on_delete
全文检索框架Haystack,与 Whoosh搜索引擎的配置
Python3与FastDFS交互(py3Fdfs)
热门文章
项目服务批处理(2019.9)
重写MenuStrip颜色方法
Winform下的键盘事件
C#复制粘贴
Convert dxf to pdf
C#访问文件夹
WebBrowser的简单使用
向Panel添加UserControl
winform调用另一个窗体的控件或方法
获取代码运行时间
Copyright © 2011-2022 走看看