C# 反射方式读取匿名对象的属性值 作者:马育民 • 2025-03-24 00:17 • 阅读:10009 # 直接获取匿名对象属性 创建匿名对象: ``` 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 } ``` 参考: https://www.cnblogs.com/willingtolove/p/11204018.html 原文出处:https://malaoshi.top/show_1GWoXUBskVz.html