Как получить значение закрытого члена в C # - PullRequest
3 голосов
/ 18 января 2010

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

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" нужен исходный объект в первом параметре, а у меня его нетобъект, потому что я получаю во время выполнения.Кто-нибудь может мне помочь?!

Ответы [ 2 ]

11 голосов
/ 18 января 2010

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

Доброжелательность,

Dan

0 голосов
/ 18 января 2010

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

f.FieldType.GetProperty("RowIndex")

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

...