/// <summary>
/// 获取某个对象的[公有属性]的名称,类型,值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string GetPropertyValue<T>(T obj,bool onlyGetNull=false)
{
if (obj == null)
{
return "null";
}
Type t = obj.GetType();//获得该类的Type
//再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了
var sb = new StringBuilder();
sb.AppendFormat("类型{0} [公有属性]的名称,类型,值{1}\r\n", t.FullName, onlyGetNull?"只显示空值的":"");
var i = ;
foreach (PropertyInfo pi in t.GetProperties())
{
var name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作
var value = pi.GetValue(obj, null);//用pi.GetValue获得值
var type = value?.GetType() ?? typeof(object);//获得属性的类型
if (onlyGetNull&&value!=null) continue;
i++;
sb.AppendFormat("{3} {0} {1}={2}\r\n", type, name, value?.ToString()??"null",i.ToString().PadLeft(,''));
// sb.Append("类型:" + pi.PropertyType.FullName + " 属性名:" + pi.Name + " 值:" + pi.GetValue(obj, null) + "");
}
return sb.ToString();
}

最新文章

  1. cocos2d-x3.x自定义事件
  2. 从Eclipse 到Unity(Android)
  3. js判断变量是否等于undefined
  4. poj3177 &amp;&amp; poj3352 边双连通分量缩点
  5. SU Demo之01MakingData--02MultiShot
  6. topcoder SRM 593 DIV2 WolfDelaymaster
  7. kfed (kernel file editor:内核文件编辑器)
  8. launch文件概述---1
  9. Redis中的发布与订阅
  10. jQuery生成全页面的悬浮覆盖层效果(overlay)
  11. CSS学习备忘
  12. Jquery关闭离开页面时提醒
  13. 【UVALive - 3713】Astronauts (2-SAT)
  14. HTML5实现图片文件异步上传
  15. IIS配置 Web部署 svg/woff/woff2字体 404错误
  16. UILabel自适应高度
  17. 本地jar包添加至Maven仓库
  18. Java多线程02(线程安全、线程同步、等待唤醒机制)
  19. mysql 字段指定值靠前排序方法,多字段排序排序方法
  20. 二十六、Linux 进程与信号---system 函数 和进程状态切换

热门文章

  1. FMCG行业是什么行业?
  2. dedecms 文章列表和频道列表同时调用
  3. linux下查看日志基本命令
  4. Note for video Machine Learning and Data Mining——Linear Model
  5. Win32 Windows编程 十
  6. hosts文件导致无法访问网站
  7. Max Sum (hdu 1003 简单DP水过)
  8. Kdd Cup 2013 总结2
  9. php(LAMP)开发环境配置相关问题及解决办法
  10. VC中Tab control的用法