如果我在运行时不知道属性名称,如何返回属性的值

本文关键字:属性 何返回 返回 运行时 不知道 如果 | 更新日期: 2023-09-27 17:58:42

为了简单起见,我们假设属性的值需要始终作为字符串返回。

public string GetTheValueOfTheProperty(PropertyInfo propertyInfo,Object myObject){
       string propname = propertyInfo.Name;
       if (propName == "IsSelected"){
          return myObject.IsSelected.ToString();
       }
    //...
}

这是有效的,但如果我不知道房产的名称,它就不起作用。在这种情况下我该怎么做?

如果我在运行时不知道属性名称,如何返回属性的值

http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.getvalue.aspx

您可以拨打propertyInfo.GetValue(myObject, null);

您可以使用ToString()转换为string,但您应该首先检查null值,否则您将获得NullReferenceException

PropertyInfo对象允许您调用对象上的属性:
object value = propertyInfo.GetGetMethod().Invoke(myObject, new object[] { });