Как получить свойства из FieldInfo в C #? - PullRequest
1 голос
/ 03 декабря 2009

У меня есть этот метод, и вы хотите получить все свойства из 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 Ответ

3 голосов
/ 03 декабря 2009

Чтобы получить значение поля для определенного объекта, используйте GetValue и передайте объект, для которого вы хотите получить значение.

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

foreach (var field in fields)
{
    Console.WriteLine( "{0} = {1}", field.Name , field.GetValue(this));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...