2011-06-09 78 views
0

爲了簡單起見,我們假設屬性的值需要總是以字符串形式返回。如何在運行時不知道屬性名稱的情況下返回屬性的值?

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

這是有效的,但如果我不知道該屬性的名稱,則不起作用。在那種情況下我會怎麼做?

+0

我需要返回每個屬性的每一個值,例如iteratevely,而無需實際使用語法「返回myObject.IsSelected.ToString() ; – HCP 2011-06-09 14:32:03

+0

你可以在'Type'對象上使用'GetProperties'獲取所有屬性的列表 - 具體取決於你如何調用上述方法(在你的問題中) – 2011-06-09 14:52:37

回答

0

的PropertyInfo對象,您可以調用該對象的屬性:

object value = propertyInfo.GetGetMethod().Invoke(myObject, new object[] { }); 
+0

快速警告;假設屬性是一個'string',並且如果它是一個不同的類型將拋出一個異常 – 2011-06-09 14:33:16

+0

你是對的,我誤解了這個問題 - 我認爲prop erties是字符串,不能作爲字符串返回。 – 2011-06-09 14:34:29

相關問題