c# 万能模型类型转换
c# 模型 类型转换 万能
2023-09-11 14:14:50 时间
调用
//获取一条User数据
UserModel model=GetUser();
//把UserModel类型转换成UserInfoModel类型
var userInfoModel = ModelTypeConvert.Convert<UserModel, UserInfoModel>(model);
核心代码
/// <summary>
/// 模型类型转换
/// </summary>
public class ModelTypeConvert
{
/// <summary>
/// 模型类型转换,OutT的属性必须和InT的属性类型和属性名称一致
/// </summary>
/// <typeparam name="InT">进入的类型</typeparam>
/// <typeparam name="OutT">转换后的类型</typeparam>
/// <param name="inT">进入的类型</param>
/// <returns></returns>
public static OutT Convert<InT, OutT>(InT inT)
{
Type InType = typeof(InT);
InT inTModel = inT;
Type OutType = typeof(OutT);
OutT outTModel = (OutT)Activator.CreateInstance(OutType);
//通过反射去遍历属性
foreach (PropertyInfo inProperty in InType.GetProperties())
{
foreach (PropertyInfo OutProperty in OutType.GetProperties())
{
if (inProperty.Name== OutProperty.Name && inProperty.PropertyType == OutProperty.PropertyType)
{
OutProperty.SetValue(outTModel, inProperty.GetValue(inTModel));
}
}
}
return outTModel;
}
}
相关文章
- c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)
- 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程
- 请求大神,C#如何截取字符串中指定字符之间的部分 按指定字符串分割 一分为二 c# 去除字符串中的某个已知字符
- 利用反射快速给Model实体赋值 使用 Task 简化异步编程 Guid ToString 格式知多少?(GUID 格式) Parallel Programming-实现并行操作的流水线(生产者、消费者) c# 无损高质量压缩图片代码 8种主要排序算法的C#实现 (一) 8种主要排序算法的C#实现 (二)
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
- [C#基础]c#中的BeginInvoke和EndEndInvoke
- C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能
- Word控件Spire.Doc 【图像形状】教程(10): 如何在C#中重置word文档的形状大小
- C#【中级篇】 C# 多态性
- C#,插入排序算法(Insert Sort Algorithm)的源代码与数据可视化
- QT-多线程重要概念及与界面之间交互总结(混淆点分析:c#中可以在子线程中创建ui控件,qt中不能在子线程中创建ui控件)
- C#中使用tao.opengl绘制三维模型
- C# 实现多线程的同步方法详解
- C# 常量、枚举、结构
- 5天玩转C#并行和多线程编程 —— 第四天 Task进阶
- 在C#的MVC中 Vue的基本用法实例
- C#值传递和引用传递
- C#中 如何处理 JSON中的特殊字符
- C# winform用sharpGL(OpenGl)解析读取3D模型obj
- C#与.NET Framework c#编程语言,和java是一样的。(c#,java) -->javaweb,asp.net