【问题标题】:How to get the private member value in C#如何在 C# 中获取私有成员值
【发布时间】:2010-01-18 16:46:32
【问题描述】:

我想得到一个私人会员的价值,所以我写了以下内容:

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”需要第一个参数中的原始对象,而我没有这个对象,因为我在运行时获得。 谁能帮帮我?!

【问题讨论】:

    标签: c# reflection private-members


    【解决方案1】:

    我认为在您的示例中,原始对象是e,不是吗?

    善良,

    丹

    【讨论】:

      【解决方案2】:

      如果你真的把这个反射调用分离成它的组成部分,你可能会有更好的运气。在我看来,原始对象实际上是由

      生成的 PropertyInfo
      f.FieldType.GetProperty("RowIndex")
      

      我想说,如果你真的声明一个 PropertyInfo 对象来临时保存它,你就可以将它传递给 GetValue 调用,然后在完成后销毁它。

      【讨论】:

        猜你喜欢
        • 2011-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-10
        • 2017-03-11
        • 1970-01-01
        • 2020-09-01
        • 2011-06-18
        相关资源
        最近更新 更多