2014-09-23 2 views
2

Итак, моя проблема заключается в следующем: у меня есть экземпляр объекта, представленный только полем FieldInfo. У меня нет другого доступа к этому объекту. Можно ли получить экземпляр объекта только через информацию о поле, как это?Получить экземпляр объекта из FieldInfo

MyObject myObject = fieldInfo.SomeMethodOrProperty as MyObject; 

Это всего лишь иллюстрация, но я думаю, что вы получите картину.

ответ

7

Нет, FieldInfo представляет атрибуты и метаданные поля в отношении типа. Он не привязан к конкретному экземпляру. Если вы хотите использовать его, вам необходимо передать его в том экземпляре, который вы хотите использовать (через GetValue или SetValue)

0

Несмотря на другой ответ, говорящий «нет», это возможно.
У меня была такая же проблема, и после некоторого теста я нашел этот код для работы:

Type oType = typeof(MyClass); 
FieldInfo[] aoFieldInfo = oType.GetFields (BindingFlags.Public | BindingFlags.Static); 

foreach (FieldInfo oFieldInfo in aoFieldInfo) 
{ 
    object oValue = oFieldInfo.GetValue (null); 
} 

и возвращает значения/объекты всех членов, из которых я ранее запрошенных на FieldInfo.

Смежные вопросы