我正在從VB移動到C#。我想循環一個集合類,這是一個數據類的集合,但我似乎無法從數據類屬性中找到實際值(找到正確的代碼來這樣做)。我有一個方法循環收集類(Contacts)並保存每條記錄(Contact)。我正在使用反射,因爲我的方法不知道它是Contacts類還是Customer類,等等。這是我在VB代碼(沖淡)C#從集合類訪問對象的屬性
Public Function SaveCollection(ByVal objCollection as Object, ByVal TableName as string, ByVal spSave as string)
Dim objClass as Object
Dim propInfo as PropertyInfo
For Each objClass in objCollection
propInfo = objClass.GetType.GetProperty("TableFieldName")
Next
End Function
我有與objClass.GetType.GetProperty( 「TableFieldName」)線
在這裏,在C#中的問題是我的C#代碼
public in SaveCollection(DictionaryBase objCollection, string TableName, string spSave)
{
PropertyInfo propInfo;
foreach (DictionaryEntry objClass in objCollection)
{
propInfo = objClass.GetType().GetProperty("TableFieldName")
}
}
C#代碼一直返回null。在我的本地窗口中,我可以看到objClass上類的proprities和propery的值,但我似乎想出瞭如何通過代碼訪問它。我使用DictionaryBase,因爲這似乎密切匹配,我會需要做的。我的數據類(聯繫人)有一些或多個屬性與聯繫人表的數據庫中的字段名稱相匹配。在我得到propInfo變量集後,然後設置我的SQLParameter的字段名,數據類型等,然後將值設置爲propInfo.value。
感謝您的幫助。
+1顯然DictionaryEntry沒有這樣的屬性。 – 2009-06-10 17:58:53
永遠不會有,因爲它是一個結構。 (即,您將無法從DictionaryEntry中派生出具有該屬性的新類型。) – 2009-06-10 18:02:14