Как получить значение частного члена в С#

Я хочу получить значение частного члена, поэтому я написал следующее:

var f = e.
          GetType().
          GetFields(System.Reflection.BindingFlags.NonPublic |
                    System.Reflection.BindingFlags.Instance | 
                    System.Reflection.BindingFlags.DeclaredOnly)[0];
object o = f.FieldType.GetProperty("RowIndex").GetValue(f.FieldType, null);

но метод "GetValue" нуждается в исходном объекте в первом параметре, а у меня нет этого объекта, потому что я получаю во время выполнения. Кто-нибудь может мне помочь?!


person Rod    schedule 18.01.2010    source источник


Ответы (2)


Я думаю, что в вашем примере исходный объект будет e, не так ли?

Доброта,

Дэн

person Daniel Elliott    schedule 18.01.2010

Возможно, вам повезет больше, если вы на самом деле разделите этот отраженный вызов на составные части. Мне кажется, что исходный объект на самом деле будет PropertyInfo, сгенерированным

f.FieldType.GetProperty("RowIndex")

Я бы сказал, что если вы на самом деле объявите объект PropertyInfo для временного хранения этого, вы сможете передать его в вызов GetValue, а затем уничтожить, когда закончите.

person Joel Etherton    schedule 18.01.2010