我基本上試圖實現一些ASP.Net控件(例如DropDownList
)使用的邏輯的一部分,以接受迭代的通用數據源通過調用由用戶指定的屬性消耗每行。.NET:從數組中的對象的動態屬性檢索值
這是在VB.Net。舉例如下:
Dim myObject As Object = getUnknownObject()
Dim propertyName As String = getUnknownPropertyNameForObject()
'Now given that myObject is an array of objects which possess the property given by propertyName '
For Each i As Object In myObject
Dim valueOfProperty As String = invokePropertyOfObject(myObject, propertyName)
'Do something with value'
Next i
我正在尋找的invokePropertyOfObject
的實現將返回他屬性的值。我想留意動態屬性在循環中調用的事實,因此可能會有與以這種方式使用反射相關的性能問題。
有沒有人知道我正在做什麼的理想方式?如果可能的話,我想要一種方法只執行一次動態屬性查找,並在循環中重複使用它。是否可以這樣做,同時要記住,雖然對象未知,但數組中的每個對象都是相同的類型。
爲了獲得你需要一個實例的屬性值,所以你將不得不爲每個對象調用它。你可以做到這一點,但它非常脆弱。如果物體是你的,用合適的屬性去除它們,然後通過它找到它們將是更好的方法。 –