var monitor = _consumlogService.GetErrorDetail(); // 获取数据
var monitorcol = _consumlogService.GetErrorDetailColumns(); //获取列名
string JsonStr = "";foreach (var m in monitor) //循环数据
{
int j = 0;
foreach (var mc in monitorcol) //循环列名
{
j++;
if (mc.FieldOrder == j)
{
JsonStr += mc.FieldName + ":" + GetValue(m, "Field" + j) + ",";
}
}
}
使用了GetValue()方法,根据传入的m对象与字符串格式列名: "Field" + j ,然后返回对应数据。
//获取对应值public string GetValue(object obj, string StrName)
{
Collection<PropertyInfo> properties = new Collection<PropertyInfo>(); //属性集合
Array.ForEach<System.Reflection.PropertyInfo>(obj.GetType().GetProperties(), p => { properties.Add(p); }); //将obj的所有内容放入properties
var result = properties.Where(c => c.Name == StrName).FirstOrDefault().GetValue(obj, null); //根据StrName找到对应的属性,并获取其中的值。
return (result == null) ? "" : result.ToString();
}