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. 拿到input输入的时间_【Keras 笔记】Input/Dense层的数学本质
  2. Hand on Machine Learning第三章课后作业(1):垃圾邮件分类
  3. 《零基础入门学习Python》学习过程笔记【013元组】
  4. 强网杯2021 BlueTeaming (内存取证)
  5. C语言实现djikstra算法(附完整源码)
  6. gitlab 分支操作笔记\新建远程分支\抓取远程分支\复制远程\删除分支
  7. Java基础总结之(面试)
  8. 电子计算机工程学,电子计算机工程学荣誉工学士资料.ppt
  9. linux java setting,setting java_home and path environmental variables in linux [duplicate]
  10. C/C++ 安全编码 —— 不安全的函数
  11. 互联网之达芬奇密码:浪潮揭秘:与中国五亿网民互为影响的互联网DNA
  12. 【数据结构】线性表之数组---C++语言描述
  13. 电视视频直播在线播放网站PHP源码V1.2
  14. 红外图像特点及识别方法
  15. ffmpeg/avconv
  16. maya藤蔓插件_Maya特效制作之植物生长动画制作教程(二)之多条藤蔓动画制作...
  17. 悉尼大学理学院计算机科学,【悉尼大学理学院专业】 - 澳大利亚留学联盟
  18. 缓存插件 EHCache
  19. 全国计算机考试第五套,计算机等级一级MS Office考试考题:第五套字处理题
  20. php 抽奖活动_PHP实现活动人选抽奖功能的方法

热门文章

  1. FireFox火狐浏览器不支持CSS中zoom属性的解决办法
  2. wordpress国内网速慢加速及防DDOS攻击快速CF切换教程
  3. 【Windows】显示缩略图非图标/开启缩略图
  4. Renesas Flash Programmer 下载步骤
  5. NLP点滴——文本相似度,计算文本间的距离
  6. 计算机启动后没有桌面图标,电脑桌面图标没了怎么办 启动电脑桌面空白没有图标问题解决方法...
  7. 出行大数据绘制的“城市星云图”是怎样的?我们还总结出了5种城市结构
  8. SNN介绍-来自脉冲神经网络原理
  9. SpringBoot简单/带附件邮件发送
  10. 案例篇13—css3实现可爱的熊猫和竹子(附源码)