为简单起见,我们假设属性的值需要始终作为字符串返回。
public string GetTheValueOfTheProperty(PropertyInfo propertyInfo,Object myObject){
string propname = propertyInfo.Name;
if (propName == "IsSelected"){
return myObject.IsSelected.ToString();
}
//...
}
这有效,但如果我不知道该属性的名称,它就不起作用。在那种情况下我该怎么做?
答案 0 :(得分:5)
http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.getvalue.aspx
您可以拨打propertyInfo.GetValue(myObject, null);
。
您可以使用string
转换为ToString()
,但您应首先检查null
值 - 否则您将获得NullReferenceException
。
答案 1 :(得分:0)
PropertyInfo对象允许您调用对象上的属性:
object value = propertyInfo.GetGetMethod().Invoke(myObject, new object[] { });