如何访问对象的内容如果我不知道c#中的结构?

时间:2010-09-24 11:23:49

标签: c#

我有一个对象,直到运行时我才知道它的结构。那么有没有办法从对象访问数据?

感谢。

PS:我想不出任何其他细节,请问我这是不够的!

3 个答案:

答案 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)

查看Reflection

答案 2 :(得分:0)

您可以使用反射来确定对象具有的属性,方法和字段。看一下Type类型

上的方法