如何使用反射来获取属性值如何使用反射来获取属性值(How to get a property val

2019-05-13 16:02发布

我有以下代码:

FieldInfo[] fieldInfos;
fieldInfos = GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

我所试图做的就是使用反射在运行时的电流化实例,我的属性之一的值。 我怎样才能做到这一点?

Answer 1:

像这样的东西应该工作:

var value = (string)GetType().GetProperty("SomeProperty").GetValue(this, null);


Answer 2:

尝试的GetProperties方法,它应该让你的财产,而不是字段。

要检索的价值,做这样的事情:

object foo = ...;
object propertyValue = foo.GetType().GetProperty("PropertyName").GetValue(foo, null);

这是使用的getProperty,它返回仅一个PropertyInfo对象,而不是将它们的阵列。 然后,我们调用的GetValue,这需要对象的参数来检索(中的PropertyInfo是特定的类型,而不是实例)的值。 到的GetValue第二个参数是索引的数组,索引属性,我假设你感兴趣的属性不是一个索引属性。 (索引属性是你做了什么让list[14]检索列表的第14个元素。)



文章来源: How to get a property value using reflection
标签: c# reflection