如何从C#中的FieldInfo获取属性?

时间:2009-12-02 22:51:07

标签: c# .net winforms reflection

我有这个方法,想要从FieldInfos获取所有属性?如何获得它?

  private static void FindFields(ICollection<FieldInfo> fields, Type t)
  {
     var flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly;

     foreach (var field in t.GetFields(flags))
     {
        fields.Add(field);
     }

     var baseType = t.BaseType;
     if (baseType != null)
     {
        FindFields(fields, baseType);
     }
  }

     var fields = new Collection<FieldInfo>();
     FindFields(fields, this.GetType());

感谢。

最好的问候。

1 个答案:

答案 0 :(得分:3)

要获取特定对象的字段值,请使用GetValue并传递要获取其值的对象。

var fields = new Collection<FieldInfo>();
FindFields(fields, this.GetType()); 

foreach (var field in fields)
{
    Console.WriteLine( "{0} = {1}", field.Name , field.GetValue(this));
}