我有一个对象,直到运行时我才知道它的结构。那么有没有办法从对象访问数据?
感谢。
PS:我想不出任何其他细节,请问我这是不够的!
答案 0 :(得分:5)
嗯,你可以用反射来做。例如:
public static void ShowProperties(object o)
{
if (o == null)
{
Console.WriteLine("Null: no properties");
return;
}
Type type = o.GetType();
var properties = type.GetProperties(BindingFlags.Public
| BindingFlags.Instance);
// Potentially put more filtering in here
foreach (var property in properties.Where
(p => p.CanRead && p.GetIndexParameters().Length == 0))
{
Console.WriteLine("{0}: {1}", property.Name, property.GetValue(o, null));
}
}
查看Type API,了解获取方法,事件,字段,嵌套类型等的方法。
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以使用反射来确定对象具有的属性,方法和字段。看一下Type
类型