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;
        }
相关推荐
riNt PTIP11 分钟前
在21世纪的我用C语言探寻世界本质——字符函数和字符串函数(2)
c语言·开发语言
007张三丰15 分钟前
系统架构设计师-以“云服务”主题为例的范文参考
java·开发语言·网络·软考高级·云服务·软考论文·论文范文
成都易yisdong15 分钟前
C# 实现道路横断面自动生成与格式转换(最小二乘拟合 + 方向向量法)
windows·算法·c#·visual studio
无限进步_16 分钟前
二叉树的前序遍历(非递归实现)
开发语言·数据结构·c++·windows·git·visual studio
鬼蛟16 分钟前
Sentinel
java·开发语言·数据库
南境十里·墨染春水21 分钟前
C++流类库 文件流操作
开发语言·c++
咸鱼翻身小阿橙22 分钟前
Qt页面小项目
开发语言·qt·计算机视觉
knight_9___30 分钟前
RAG面试题4
开发语言·人工智能·python·面试·agent·rag
编程之升级打怪37 分钟前
自定义实现Java的HashMap集合
java·开发语言
Ulyanov40 分钟前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio状态机深度应用:智能待办事项管理系统
开发语言·python·qt·gui·雷达电子对抗系统仿真