直接获取匿名对象属性
创建匿名对象:
var objUser = new {Name="Lilei",Age=18 };
一般在一个代码块中,可以直接获取匿名对象属性
Console.WriteLine("Name:" + objUser.Name);
提出问题
当匿名对象转换成 object 后,就 无法 直接读取属性值了
static object GetObj()
{
var obj = new { Name = "Lilei", Age = 18 };
return obj;
}
解决方式1:通过反射的方式遍历属性
static void Main(string[] args)
{
var obj = GetObj();
// 通过反射的方式获取所有属性
PropertyInfo[] properties = obj.GetType().GetProperties();
// 遍历属性打印到控制台。
foreach (PropertyInfo prop in properties)
{
//Console.WriteLine(prop.Name);
Console.WriteLine(prop.GetValue(t));
}
}
解决方式2:通过反射的方式获取指定属性值
static void Main(string[] args)
{
var obj = GetObj();
//此时可通过反射的方式获取属性值
object objName = obj.GetType().GetProperty("Name").GetValue(obj);
Console.WriteLine(objName);// Lilei
}