在主窗口中的每个字段中获取属性值

时间:2013-12-29 15:53:40

标签: c# reflection properties field

我有这段代码:

foreach (FieldInfo mainField in typeof(MainWindow).GetFields())
            {
                FieldInfo field = mainField;
                foreach (PropertyInfo prop in field.FieldType.GetProperties())
                {                 
                        object propertyValue = null;
                        propertyValue = prop.GetValue(field.Name, null);
                        Console.WriteLine(propertyValue);             
                }
            }

我的问题在于

propertyValue = prop.GetValue(field.Name,null);

我收到错误:对象与目标类型不匹配。 如果我把它改为

propertyValue = prop.GetValue(mgmtConfig,null);

它会起作用,但是field.Name = mgmtConfig,所以我不明白是什么问题。

1 个答案:

答案 0 :(得分:2)

GetValue method的第一个参数是将返回其字段值的对象。因此,在您的情况下,它应该是您的MainWindow实例。

如果是静态属性,则忽略第一个参数。