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;
        }
相关推荐
ID_18007905473几秒前
京东商品详情 API 数据分析业务场景 + JSON 返回参考
java·开发语言
周杰伦fans几秒前
C# CAD二次开发:RotatedDimension 旋转标注完全指南
开发语言·c#
郝学胜-神的一滴3 分钟前
Python魔法函数深度探索|从工具实操到核心应用,解锁语言底层的优雅密码
开发语言·数据库·人工智能·python·pycharm
她说彩礼65万5 分钟前
C语言 函数指针
c语言·开发语言·算法
ccice0114 分钟前
python爬虫——爬取全年天气数据并做可视化分析
开发语言·爬虫·python
C语言小火车19 分钟前
嵌入式实习面试问题:那个动态内存是怎么样分配的?
c语言·开发语言·c++·嵌入式硬件·面试
xiangyong5822 分钟前
Python管理UV-命令&实例汇总(一)
开发语言·python·uv
John_ToDebug24 分钟前
Chromium 源码剖析:base::NoDestructor——更安全的静态单例解决方案
开发语言·c++·chrome
宝桥南山26 分钟前
Azure - 尝试一下使用Azure Developer CLI去部署应用程序
microsoft·ai·微软·c#·aigc·azure
淘矿人29 分钟前
2026大模型API中转平台深度评测:weelinking领衔五大服务商横向实测与选型指南
开发语言·人工智能·python·oracle·数据挖掘·php·pygame