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;
        }
相关推荐
@小柯555m16 分钟前
Java八股刷题
java·开发语言·八股
182******208318 分钟前
2026新手必看:C语言学到什么程度可以出去找工作
c语言·开发语言
IT猿手32 分钟前
光伏模型参数估计:山羊优化算法(Goat Optimization Algorithm, GOA)求解光伏模型参数辨识问题,免费提供完整MATLAB代码链接
开发语言·算法·matlab·智能优化算法·光伏模型参数估计·光伏模型参数辨识·最新群智能算法
kels889943 分钟前
2026 年黄金实时价格数据 API 接口实测推荐
开发语言·笔记·python·金融·区块链
牢七1 小时前
链条合集整理
java·开发语言
叼烟扛炮1 小时前
C++ 知识点06 inline
开发语言·c++·inline
曹牧2 小时前
C#:同一项目中维护多个版本的代码
开发语言·c#
青山师2 小时前
Java反射深度解析:运行时探查的艺术、代价与工程实践
java·开发语言·面试·反射·java程序员·java核心
skilllite作者2 小时前
Deer-Flow 工作流引擎深度评测报告
java·大数据·开发语言·chrome·分布式·架构·rust
likerhood2 小时前
Java的TimeUnit详细讲解
java·开发语言