1
目的是爲索引/非索引屬性編寫通用屬性路徑檢索器。 對於索引,只能考慮數字指標。索引/非索引屬性的通用屬性路徑檢索器
我有以下代碼。這應該基於屬性路徑檢索屬性,甚至索引屬性。 我嘗試在MyObject上使用它,它的Data屬性是DataTable
。 propertyPath將是例如Data.Rows [0] 當執行到達該註釋線,System.Reflection.TargetParameterCountException
拋出話說
參數數量不匹配。
public static object GetPropertyPathValue(object value, string propertyPath)
{
object propValue = value;
foreach (string propName in propertyPath.Split('.'))
{
string propName2 = propName;
object[] index = null;
int bracket1 = propName2.IndexOf("[");
int bracket2 = propName2.IndexOf("]");
if ((-1 < bracket1) && (-1 < bracket2))
{
index = new object[] { Int32.Parse(propName2.Substring(bracket1 + 1, bracket2 - bracket1 - 1)) };
propName2 = propName2.Substring(0, bracket1);
}
PropertyInfo propInfo = propValue.GetType().GetProperty(propName2);
propValue = propInfo.GetValue(propValue, index); // Exception thrown here
}
return propValue;
}
我檢查這個(PropertyInfo.GetValue() - how do you index into a generic parameter using reflection in C#?),但便無法找到答案,我的問題:我在做什麼錯?
不錯。你的項目到底做了什麼?我的意思是它使用XAML來做什麼? –
謝謝:)它不使用XAML,它以線程安全和高效的方式重現了XAML的功能。我開發/使用它用於大量數據驅動的圖形渲染應用程序。 – Ani
謝謝。鏈接源116行沒有提及「Item」...您能否給出建議如何才能實現鏈接源所需的功能? –