当前位置: 首页 > news >正文

对象属性拷贝(全匹配拷贝)

/// <summary>
/// 对象属性拷贝(全匹配拷贝)
/// </summary>
/// <param name="obj1">源对象</param>
/// <param name="obj2">目标对象</param>
/// <returns>目标对象</returns>
public static T PropertyCopy<K, T>(K obj1, ref T obj2)
{
Type souType = obj1.GetType();
Type tarType = obj2.GetType();
PropertyInfo[] pis = souType.GetProperties(BindingFlags.Public | BindingFlags.Instance);
if (null != pis)
{
foreach (PropertyInfo pi in pis)
{
string propertyName = pi.Name;
PropertyInfo pit = tarType.GetProperty(propertyName);
if (pit != null)
{
pit.SetValue(obj2, pi.GetValue(obj1, null), null);
}
}
}
return (T)obj2;
}

相关文章:

  • LeetCode -- Reorder List
  • 最近
  • LeetCode -- Search a 2D Matrix II
  • [IE编程] 打开/关闭IE8的光标浏览模式(Caret Browsing)
  • LeetCode -- 3Sum Closest
  • 使用反射将业务对象绑定到 ASP.NET 窗体控件
  • LeetCode -- 4Sum
  • LeetCode -- Binary Tree Level Order Traversal II
  • (ZT)一个美国文科博士的YardLife
  • LeetCode -- Clone Graph
  • Oracle 中的nvl() 函数 相当于Sql Server 的 isnull()
  • LeetCode -- Combinations
  • [IE编程] WebBrowser控件中设置页面的缩放
  • LeetCode -- Find the Duplicate Number
  • LeetCode -- Group Anagrams
  • Iterator 和 for...of 循环
  • Protobuf3语言指南
  • 订阅Forge Viewer所有的事件
  • 多线程 start 和 run 方法到底有什么区别?
  • 二维平面内的碰撞检测【一】
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 技术发展面试
  • 学习笔记TF060:图像语音结合,看图说话
  • 学习使用ExpressJS 4.0中的新Router
  • 湖北分布式智能数据采集方法有哪些?
  • #define,static,const,三种常量的区别
  • #pragma data_seg 共享数据区(转)
  • $.ajax()参数及用法
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (接口自动化)Python3操作MySQL数据库
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .bat批处理出现中文乱码的情况
  • .naturalWidth 和naturalHeight属性,
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net framework4与其client profile版本的区别
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .net经典笔试题
  • .py文件应该怎样打开?
  • ??eclipse的安装配置问题!??
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [2544]最短路 (两种算法)(HDU)
  • [Android Pro] Notification的使用
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [Contiki系列论文之2]WSN的自适应通信架构
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [Docker]十.Docker Swarm讲解
  • [Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例
  • [NOIP2004] 提高组 洛谷P1090 合并果子
  • [PHP] 代码重用与函数
  • [python 邮件处理]
  • [Python] 输入与输出
  • [Redis]Redis的数据类型