/// <summary>
/// 类实体的属性与值转化成键值对形式
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="inParam"></param>
/// <param name="infos"></param>
/// <param name="Entity"></param>
public static void GetEntityPropertyToDic<T>(Dictionary<string, object> inParam, PropertyInfo[] infos, T Entity)
{
foreach (var info in infos)
{
var itemTpe = info.PropertyType;
//实体中有嵌套类的处理
if (itemTpe.IsClass && !itemTpe.Name.Equals("String", StringComparison.OrdinalIgnoreCase))
{
if (info.GetValue(Entity) == null) continue;
GetEntityPropertyToDic(inParam, itemTpe.GetProperties(), info.GetValue(Entity));
}
else
{
inParam.Add(info.Name, info.GetValue(Entity, null));
}
}
}
var test = new TestManageDemo() { Id = 10, Age = 20, Name = "少侠", Address = "天涯海角路", Interest = new TestInterest() { InterestName = "仗剑撸代码", InterestAge = 9 } };
Dictionary<string, object> testParamDics = new Dictionary<string, object>();
GetEntityPropertyToDic(testParamDics, test.GetType().GetProperties(), test);
string test_json = JsonConvert.SerializeObject(testParamDics);