C# 实体转换

使用反射转换实体

csharp 复制代码
        //泛型+反射
        public static T ConvertModel<T, P>(P pModel)
        {
            T ret = System.Activator.CreateInstance<T>();

            List<PropertyInfo> p_pis = pModel.GetType().GetProperties().ToList();
            PropertyInfo[] t_pis = typeof(T).GetProperties();

            foreach (PropertyInfo pi in t_pis)
            {
                //可写入数据
                if (pi.CanWrite)
                {
                    //忽略大小写
                    var name = p_pis.Find(s => s.Name.ToLower() == pi.Name.ToLower());
                    if (name != null && pi.PropertyType.Name == name.PropertyType.Name)
                    {
                        pi.SetValue(ret, name.GetValue(pModel, null), null);
                    }

                }
            }

            return ret;
        }
相关推荐
好奇龙猫2 分钟前
[大学院-python-base gammer learning2: python base programming ]
开发语言·python
海盗123420 分钟前
C#上位机开发-S7协议通信
开发语言·c#
小短腿的代码世界25 分钟前
Qt 2D 绘制实战与性能优化深度解析
开发语言·qt·性能优化
FeBaby32 分钟前
ReentrantLock 与 synchronized 底层实现对比图解
开发语言·c#
jaycyj33 分钟前
pytest
开发语言·python
A_aspectJ36 分钟前
【Java基础开发】基于 Java Swing +MySQL + JDBC 版实现图书管理系统
java·开发语言·mysql
Gary Studio40 分钟前
安卓HAL编译流程
开发语言·python
我是无敌小恐龙1 小时前
Java SE 零基础入门Day06 方法重载+Debug调试+String字符串全套API详解(超全干货)
java·开发语言·人工智能·python·transformer·无人机·量子计算
AI+程序员在路上1 小时前
Qt6读取rtsp视频流的几种方法
开发语言·qt6.3
码农飞哥1 小时前
从Java后端到AI应用开发,我这两年做了什么
java·开发语言·人工智能