Как получить значение свойства с помощью отражения

У меня есть следующий код:

FieldInfo[] fieldInfos; fieldInfos = GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance); 

То, что я пытаюсь сделать, это получить значение одного из моих свойств текущего экземпляра экземпляра во время выполнения, используя reflection. Как я могу это сделать?

Что-то вроде этого должно работать:

 var value = (string)GetType().GetProperty("SomeProperty").GetValue(this, null); 

Попробуйте метод GetProperties , он должен получить вам свойство, а не поля.

Чтобы получить значение, сделайте следующее:

 object foo = ...; object propertyValue = foo.GetType().GetProperty("PropertyName").GetValue(foo, null); 

Это использует GetProperty, который возвращает только один объект PropertyInfo, а не массив из них. Затем мы вызываем GetValue, который принимает параметр объекта для извлечения значения из (PropertyInfo специфичен для типа, а не для экземпляра). Второй параметр GetValue – это массив индексов, для свойств индекса, и я предполагаю, что свойство, которое вас интересует, не является индексированным свойством. (Индексированное свойство – это то, что позволяет сделать list[14] для получения 14-го элемента списка.)

  • Вызов статического метода с использованием отражения
  • Почему C ++ не имеет отражения?
  • Почему в C # нет оператора `fieldof` или` methodof`?
  • Изменение частного статического конечного поля с использованием отражения Java
  • Получить экземпляр объекта-компаньона с новым API-интерфейсом Scala reflection
  • Отключить reflection Java для текущего streamа
  • Как заставить Java-метод возвращать общий список любого типа?
  • Как получить доступ к частным методам и частным данным через reflection?
  • Любой способ вызвать частный метод?
  • Поддержка отражения в C
  • Можно ли установить частную собственность через reflection?
  • Давайте будем гением компьютера.