C# 反射获取属性类型及属性值,两个实体转换
一、两个实体数据转换
- /// <summary>
- /// 为属性赋值
- /// </summary>
- /// <typeparam name="T">源单类</typeparam>
- /// <typeparam name="S">需要转换的实体类</typeparam>
- /// <param name="source"></param>
- /// <returns></returns>
- public static S EntityConvert<T, S>(T source)
- {
- S target = Activator.CreateInstance<S>();
- var sType = source.GetType();
- var dType = typeof(S);
- foreach (PropertyInfo now in sType.GetProperties())
- {
- var name = dType.GetProperty(now.Name);
- if (name == null)
- continue;
- dType.GetProperty(now.Name).SetValue(target, now.GetValue(source));
- }
- return target;
- }
二、两个集合之间的转换
- public static List<S> EntityConvert<T, S>(List<T> sourceList)
- {
- List<S> list = new List<S>();
- IEnumerator<T> enumerator = sourceList.GetEnumerator();
- while (enumerator.MoveNext())
- {
- list.Add(EntityConvert<T, S>(enumerator.Current));
- }
- return list;
- }
三、获取属性的名称、属性类型、属性值
- public class User
- {
- public int Id { get; set; }
- public string name { get; set; }
- public decimal money { get; set; }
- public string sex { get; set; }
- public string Email { get; set; }
- public DateTime birth { get; set; }
- public int State { get; set; }
- }
- public void Test(){
- var user = new User
- {
- birth = DateTime.Now,
- Email = "123@qq.com",
- Id = ,
- money = ,
- name = "张三",
- sex = "男",
- State =
- };
- var type = user.GetType().GetProperties();
- foreach (var item in type)
- {
- Console.WriteLine($"属性名称:{item.Name},属性值:{ item.GetValue(user)},属性类型:{item.PropertyType.Name}");
- }
- }
C# 反射获取属性类型及属性值,两个实体转换的更多相关文章
- 【java】java获取对象属性类型、属性名称、属性值
java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...
- 获取对象属性类型、属性名称、属性值的研究:反射和JEXL解析引擎
同步发布:http://www.yuanrengu.com/index.php/20170511.html 先简单介绍下反射的概念:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所 ...
- java 反射获取类的属性 类型 名称和值
/** * 获取属性类型(type),属性名(name),属性值(value)的map组成的list * */ private List getFiledsInfo(Object o){ Field[ ...
- Java反射获取对象VO的属性值(通过Getter方法)
有时候,需要动态获取对象的属性值. 比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定.比如,这次User,下次可能是Company. e.g. 这次我需要做一个 ...
- java获取对象属性类型、属性名称、属性值
/** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String ...
- java获取对象属性类型、属性名称、属性值 【转】
/** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String ...
- java 通过反射获取调用类方法及属性
首先说下反射是什么?反射是Sun公司推出的一组API,此组API位于Java.lang.reflect中 反射的作用是编写工具(例如eclipse),编写框架,当然对于一般的程序,我们不可能用反射来做 ...
- java-通过反射获取目标类的属性,方法,构造器
首先定义一个urse package com.studay_fanshe; public class User { private String uname; private int age; pri ...
- 使用反射获取类中的属性(可用于动态返回PO类的列,当做表格的表头)
//利用反射取类中的属性字段 try { Class clazz = Class.forName("houji.bean.model.TaskModel"); Field[] fi ...
随机推荐
- Centos7编译opencv3.4.1
Centos7编译opencv3.4.1 参考博客 https://blog.csdn.net/wjbwjbwjbwjb/article/details/79111996 1.配置epel源 yum ...
- 使用delimiter //,解决mysql end报错问题
这是我的初始报错的代码: )) begin select sc.* from sc where sno= student_no end; 会报这个错误,“Error Code: 1064. You h ...
- python 内置函数 进制转换
4.内置函数 自定义函数 内置函数 len Open id() type() range() 输入输出 print() input() 强制转换 int() float() list() tuple( ...
- KendoUI 自定义CheckBoxList
不多说直接上代码 CSS完整代码: .e-selectboxs-container { display: table; } .e-selectbox { min-width: 100px; heigh ...
- Matlab 2017b遇到绘图低级错误
解决方案: 命令窗口中输入:opengl('save','software') 回车 重启软件
- Iterator迭代器UML类图
ArrayList类中,实现了List接口的方法 List接口的方法 迭代器接口 ArrayList的内部类实现了这个[迭代器]接口
- 使用s3fs-fuse 挂载minio s3 对象存储
minio 是一个aws s3 兼容的对象存储系统,我们可以通过s3fs 进行数据桶的挂载,这样可以做好多方便的事情 环境准备 使用docker-compose 运行 minio docker-com ...
- Reac全家桶笔记
函数作为无状态组件的使用: const EllipsisTdContent = ({ text, width }) => { return ( <div className="t ...
- 通过ZipKin整理调用链路
缘由 公司使用的是Docker+微服务,服务拆分差不多41个了,然后过完年来就接到这个需求,把指定业务功能的业务基线整理出来,比如,登录这个操作会经过哪些微服务,把登录这个操作的链条列出来,从api- ...
- DNS 负载均衡
相关文章: 文章 网址 一个域名可以绑定多个IP吗?由此引发的调查 https://ask.zkbhj.com/?/article/139