我有什麼似乎是一個簡單的問題,但我似乎無法找到答案。我有一個屬性類。其中一個屬性返回一個List。我有一個循環遍歷任何類的所有屬性的方法,併爲該類(通信日誌應用程序)生成一個TreeNode。當我遇到標識爲List的財產時,我不知道如何正確投射Property.GetValue。 Property.PropertyType是已知的,但是我試過,我得到一個編譯錯誤或運行時錯誤。Casting C#List <>
這裏就是我試圖做...
foreach (PropertyInfo prop in props)
{
if(prop.PropertyType.Namespace == "System.Collections.Generic")
{
List<object> oList = prop.GetValue(data, null);
MessageBox.Show(oList.Count.ToString())
}
}
如果我把一個斷點上的GetValue線,prop參數都知道,它是用三個要素「MyClass的」物品清單。我只是不能將它轉換爲對象列表(這可能很好),或者將其轉換爲實際的「myclass」元素列表,這些列表會更好。如何將PropertyInfo.GetValue(一個對象)的返回值轉換爲List?
如果你做var oList = prop.GetValue()它會返回正確的類型嗎? – taylonr 2011-03-16 11:39:44
關聯[Casting List - 協方差/逆變問題](http://stackoverflow.com/questions/4931789/casting-listt-covariance-contravariance-problem)。 –
2011-03-16 11:49:48