3

プライベートメンバーの値を取得したいので、次のように書きました。

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」は最初のパラメーターで元のオブジェクトを必要とし、実行時に取得するため、このオブジェクトはありません。誰か助けてくれませんか?!

4

2 に答える 2

11

あなたの例では、元のオブジェクトはそうeではないでしょうか?

親切、

ダン

于 2010-01-18T16:48:52.070 に答える
0

この反映された呼び出しを実際にコンポーネントの断片に分離すると、運が良くなる可能性があります。元のオブジェクトが実際にによって生成された PropertyInfo になるように私には見えます

f.FieldType.GetProperty("RowIndex")

これを一時的に保持する PropertyInfo オブジェクトを実際に宣言すると、それを GetValue 呼び出しに渡して、完了したら破棄できると思います。

于 2010-01-18T16:55:28.353 に答える