实体对象属性和值转为键值对Dictionary

实体对象转为Dictionary键值对

    /// <summary>
        /// 实体转键值对
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static Dictionary<string, string> EntityToDictionary<T>(T obj) where T : class
        {
            //初始化定义一个键值对,注意最后的括号
            Dictionary<string, string> dic = new Dictionary<string, string>();
            //返回当前 Type 的所有公共属性Property集合
            PropertyInfo[] props = typeof(T).GetProperties();
            foreach (PropertyInfo p in props)
            {
                var property = obj.GetType().GetProperty(p.Name);//获取property对象
                var value = p.GetValue(obj);//获取属性值
                dic.Add(p.Name, StringHelper.valueOf(value));
            }
            return dic;
        }

上文中的StringHelper.valueOf(value)为对象转为字符串,可避免value为null时保存,具体方法为:

public static String valueOf(Object obj)
{
  return (obj == null) ? "null" : obj.ToString();
}

 

posted @ 2017-09-18 10:41  Chavez.net  阅读(902)  评论(0编辑  收藏  举报