C# .NET MODEL 复制,实体类复制
--
/// <summary>
/// 将T1 实体的参数复制给 T2 ,不能处理多层次
/// </summary>
/// <typeparam name="T1"></typeparam>
/// <typeparam name="T2"></typeparam>
/// <param name="a"></param>
/// <param name="b"></param>
public static void CopyModel<T1, T2>(T1 a, T2 b)
{ System.Reflection.PropertyInfo[] cfgItemProperties = a.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public); foreach (System.Reflection.PropertyInfo item in cfgItemProperties)
{
string name = item.Name;
object value = item.GetValue(a, null);
//string 或 值属性,且value 不为 null
if ((item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String")) && value != null && !string.IsNullOrEmpty(value.ToString()))
{
#region 在MODEL2中查找是否有此参数名,有则赋值
System.Reflection.PropertyInfo[] list2 = b.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
foreach (System.Reflection.PropertyInfo i2 in list2)
{
//两者 PropertyType.Name 要相等
if (item.Name == i2.Name && item.PropertyType.Name == i2.PropertyType.Name)
{
i2.SetValue(b, value, null);
}
}
#endregion }
} }
--
C# .NET MODEL 复制,实体类复制的更多相关文章
- 两个实体类 复制 copy 工具类
import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Date; public class ...
- 使用myeclipse创建带注解的model实体类
1.先新建JPA项目: 如果没有就点击左下角的Show All Wizards. 点两次Next后,点击Finish即可,中间不用任何操作 (点第二次Next后会出现连接到所在数据库,先不管) ...
- ORM存储过程和实体类代码生成工具
ORM存储过程和实体类生成工具 自己写的一个ORM框架的存储过程和实体类生成工具,具体界面如下: 操作步骤: 1.设置数据库连接: 2.选择要生成的表或视图: 3.选择要生成的存储过程类型: 4.如果 ...
- C# 扩展方法克隆实体类
using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Ru ...
- java反射遍历实体类属性和类型,并赋值和获取值
/* * GetModelNameAndType.java * Version 1.0.0 * Created on 2017年12月15日 * Copyright ReYo.Cn */ packag ...
- c# 使用T4模板生成实体类(sqlserver)
新建类库,右键添加 "文本模板" 添加完成之后生成如下后缀为 tt的文件: 双击文件:TextTemplate_Test.tt 文件打开,替换代码如下 <#@ templat ...
- 数据库已经存在表, django使用inspectdb反向生成model实体类
1.通过inspectdb处理类,可以将现有数据库里的一个或者多个.全部数据库表生成Django model实体类 python manage.py inspectdb --database defa ...
- servlet层调用biz业务层出现浏览器 500错误,解决方法 dao数据访问层 数据库Util工具类都可能出错 通过新建一个测试类复制代码逐步测试查找出最终出错原因
package com.swift.jztk.servlet; import java.io.IOException; import javax.servlet.ServletException; i ...
- Orika - 类复制工具
Orika 前言 类复制工具有很多,比较常用的有 mapstruct.Spring BeanUtils.Apache BeanUtils.dozer 等,目前我所在的项目组中使用的是 mapstruc ...
随机推荐
- CSS多行文字超出隐藏加省略号
overflow: hidden; text-overflow:ellipsis; white-space: nowrap; 限制行数 overflow: hidden; text-overflow: ...
- Openresty 进行限流的方法
1.使用Openresty进行限流, 使用漏桶原理进行设计 和路由系统设计类似. LUA脚本去通过变量去redis取值,从redis中得到队列的大小.漏和桶的大小. 然后通过比较,队列大小与漏和桶进行 ...
- JS 删除Array对象中的元素。
var idTemp=new Array(); var nameTemp = new Array(); nameTemp.splice($.inArray(“1”, nameTemp),1); idT ...
- 【原创】Arduino、arm、树莓派与单片机
Arduino是一个由开源软件环境支持的开源硬件原型平台.包含硬件(各种型号Arduino板)和软件(Arduino IDE).集成开发环境是Arduino IDE ,编写和编译sketch后通过US ...
- Windows MySQL测试数据库employees的导入
一: 首先下载employees测试数据库 https://launchpad.net/test-db/ 二:用文本编辑器打开其中的employees.sql文件,将第38行的set storage_ ...
- background属性冲突导致的部分浏览器背景图片不显示问题
前几天在项目中遇到了一个让人摸不着头脑的bug,测试说页面显示有点问题并发了截图, 正常的显示状态是这样 首先我自信地用自己的手机检查了一下,没有问题,问清楚后得知是UC浏览器中出现的,UC的内核是u ...
- int 转double , 转float
Integer log = 21424344;Double log1 = log.doubleValue() / 1000000;System.out.println(log1);BigDecimal ...
- 处理文件中的" M-BM- "特殊符号
有时为了方便,会在Excel中进行代码拼装,比如说是建表SQL语句,但是在复制的代码过程中可能会带入不可见字符,造成代码无法运行. 本次代码中就需要了不可见的" M-BM- " 问 ...
- Windows gitweb安装
/******************************************************************************* * Windows gitweb安装 ...
- Java基于opencv实现图像数字识别(五)—腐蚀、膨胀处理
腐蚀:去除图像表面像素,将图像逐步缩小,以达到消去点状图像的效果:作用就是将图像边缘的毛刺剔除掉 膨胀:将图像表面不断扩散以达到去除小孔的效果:作用就是将目标的边缘或者是内部的坑填掉 使用相同次数的腐 ...