繁体   English   中英

如何使用反射获取属性值

[英]How to get a property value using reflection

我有以下代码:

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

我想要做的是使用反射在运行时获取当前实例化实例的一个属性的值。 我怎样才能做到这一点?

这样的事情应该有效:

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

尝试使用GetProperties方法,它应该为您提供属性,而不是字段。

要检索值,请执行以下操作:

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

这是使用GetProperty,它只返回一个PropertyInfo对象,而不是它们的数组。 然后我们调用GetValue,它接受对象的参数来从中检索值(PropertyInfo特定于类型,而不是实例)。 GetValue的第二个参数是一个索引器数组,用于索引属性,我假设您感兴趣的属性不是索引属性。 (索引属性是允许您执行list[14]以检索列表的第14个元素。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM