1、调用

public void Get()
{User model = new User{user_name = "admin",nick_name = "king",password = "123456"};string result = GetProperties(model);string value = GetPropertyValue(model, "user_name");
}

2、实体类

public class User
{public string user_name { get; set; }public string nick_name { get; set; }public string password { get; set; }
}

3、PropertyInfo 获取实体类的所有属性和值

public string GetProperties<T>(T t)
{string tStr = string.Empty;if (t == null){return tStr;}PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);if (properties.Length <= 0){return tStr;}foreach (PropertyInfo item in properties){string name = item.Name;object value = item.GetValue(t, null);if (item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String")){tStr += string.Format("{0}:{1},", name, value);}else{GetProperties(value);}}return tStr;
}

4、PropertyInfo 获取实体类指定属性值

public string GetPropertyValue<T>(T t, string field)
{string value = "9";if (t == null){return value;}PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);if (properties.Length <= 0){return value;}var property = properties.Where(x => x.Name == field).FirstOrDefault();value = property.GetValue(t, null).ToString();return value;
}

5、类型判断
propertyInfo.PropertyType != typeof(int)
propertyInfo.PropertyType != typeof(double)
propertyInfo.PropertyType != typeof(DateTime?)


private readonly TestDbContext _context;public ReportsService(TestDbContext context)
{_context = context;
}public IEnumerable<TestDto> Get()
{_context.ExecuteProc<TestDto>("存储过程名称", 参数);
}public static IEnumerable<TElement> ExecuteProc<TElement>(this TestDbContext db, string sql, params object[] parameters) where TElement : new()
{var connection = db.Database.GetDbConnection();using (var cmd = connection.CreateCommand()){db.Database.OpenConnection();cmd.CommandText = sql;cmd.CommandType = System.Data.CommandType.StoredProcedure;cmd.Parameters.AddRange(parameters);var dr = cmd.ExecuteReader();var columnSchema = dr.GetColumnSchema();var data = new List<TElement>();while (dr.Read()){TElement item = new TElement();Type type = item.GetType();foreach (var kv in columnSchema){var propertyInfo = type.GetProperty(kv.ColumnName);if (kv.ColumnOrdinal.HasValue && propertyInfo != null){if (kv.ColumnName == "COLLECTOR_CODE"){ }var value = dr.IsDBNull(kv.ColumnOrdinal.Value) ? null : dr.GetValue(kv.ColumnOrdinal.Value);if (value == null){ }else{if (!string.IsNullOrEmpty(value.ToString())&& propertyInfo.PropertyType != typeof(int)&& propertyInfo.PropertyType != typeof(double)&& propertyInfo.PropertyType != typeof(DateTime?)){value = value.ToString();}}propertyInfo.SetValue(item, value);}}data.Add(item);}dr.Dispose();return data;}
}

*
*
*

C# PropertyInfo 获取实体类属性名称和属性值相关推荐

  1. 获取实体类属性值为null的属性名

    在BeanUtils.copyProperties(Object source, Object target, String... ignoreProperties)中,可以传入属性为null的属性名 ...

  2. java获取实体类对象_java 获取实体类对象属性值的方法

    在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...

  3. 【java】java获取对象属性类型、属性名称、属性值

    java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...

  4. 解决:无法获取实体类com.xxx.xx.xx.xx.dto.XxxDTO对应的表名

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1.报错如题: 无法获取实体类com.xxx.xx.xx.xx.dto.XxxDTO对应的表名 2. ...

  5. MapperException: 无法获取实体类xxxxx对应的表名! 三种解决方法,总有一款适合你。

    MapperException: 无法获取实体类xxxxx对应的表名! 三种解决方法,总有一款适合你. 参考文章: (1)MapperException: 无法获取实体类xxxxx对应的表名! 三种解 ...

  6. 解决无法获取实体类XXX对应的表名!

    出现场景: 出现原因: 使用tkmapper的Example类中的方法时,因为实体对应数据库表,前端有些字段,数据库并没有相应的字段,所以需要前端和后端数据交互的中间的类DTO类,这个类继承你的基本实 ...

  7. 【实战问题】【13】报错springBoot-tk.mybatis.mapper.MapperException: 无法获取实体类com.xx.User对应的表名!...

    正文: 最开始以为是因为该实体类不存在,检查后发现该实体类是存在的.原因是Application.class中@MapperScan的注解,导入包应该为 import tk.mybatis.sprin ...

  8. 通用mapper报错 无法获取实体类XXX对应的表名!

    在Example初始化时报错, 报错信息为:"无法获取实体类XXX对应的表名!" 去除  spring-boot-devtools  这个jar包就可以了 原帖: http://c ...

  9. C#获取实体类字段信息PropertyInfo,字段名称,字段值,字段属性标签

    可用于EF获取实体字段是否为主键key 引用空间: System.Reflection.PropertyInfo AnUser anUser = new AnUser();anUser.Id = &q ...

最新文章

  1. POJ 3275 Ranking the Cows (floyd传递闭包)
  2. 【LSH源码分析】p稳定分布LSH算法
  3. linux-Centos 7下bond与vlan技术的结合
  4. spring+hibernate中的Result object returned from HibernateCallback isn't a List
  5. 面试官对我说:虽然你技术能力强,但是依然做不了架构师
  6. Magento: 设置产品列表默认排序方式 How to sort Magento products by date added as default
  7. Machine Learning Notes Ⅲ
  8. 运营效果分析:假设检验
  9. 机器学习基石 作业0
  10. axios 中文文档
  11. 前端 - token 是什么?为什么每次请求头(HEADS)里要携带它?
  12. 概念模型与关系模型和关系规范化
  13. 迅睿CMS插件自动采集伪原创免费插件
  14. php+Sphinx分词中间件的认识和基础使用(亲测)
  15. python 拆包_python3拆包详解
  16. C语言多轴插补,C语言算法- 插补搜寻法
  17. SQL渗透与防御——(二)SQL注入
  18. C/C++编程:异步编程入门
  19. [野狐行网游研究][三期四期][8.25更新]
  20. 《黄金原野》区块链与信用评分体系建设

热门文章

  1. 2021林西一中高考成绩查询,喜报来了!内蒙古各地区学校喜报(持续更新中...)...
  2. 开发和常用工具推荐清单,有些工具是必备噢。
  3. 计算机组成原理----ROM和RAM芯片构成存储系统例题和Cache例题详解
  4. 如何打开.xmind文件
  5. 数字孪生高铁如何制作?VR古建筑供应商强荐广州华锐互动
  6. 海底世界-第11届蓝桥杯Scratch省赛真题第3题
  7. Servlet中三大域对象详解----[笔记]
  8. ffmpeg解封、解码实战
  9. 利用bat判断某bat进程是否存在并做处理
  10. 精通Midjourney V5:影视相机参数总结 - 电影提示、镜头类型和镜头在电影提示背景下探讨镜头大小和镜头