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 回答