如何使用反射获取私有成员的值



我试图从NumericUpDown获得私有成员的值(文本)。

 public class NumericUpDown
 {
      private TextBox Text;
      ...
      ...
 }

我不明白为什么它不显示为一个字段。也许有人可以澄清字段和成员之间的区别。如果它是一个字段,我发现使用反射我可以得到它:

 typeof(NumericUpDown).GetField("Text", BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this) As TextBox

但是它是一个成员所以我必须通过:

获取MemberInfo
 typeof(NumericUpDown).GetMember("Text", BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Instance).GetValue(0)

this不返回值,而是返回类型为。这是有意义的,因为它是memberinfo的值,但我想要的是实际对象的实际值。

是否有像FieldInfo.GetValue(object)这样的检索方法?任何帮助或建议。

这是因为您使用的是Silverlight。

引用:Silverlight反射不能用于绕过访问级别限制和(例如)调用私有成员。

相关内容

  • 没有找到相关文章