我有一組自定義類屬性 - 每個屬性的命名與數據庫中的值相同。我想要做的是根據交換機動態設置每個屬性的值。自定義類屬性 - 動態參考
自定義屬性是這個樣子:
class MyDEF
{
#region Variable Declaration Section....
private string _ABC01;
private string _ABC02;
private string _ABC03;
private string _ABC04;
#endregion
#region Property Declaration Section
public string ABC01
{
get { return _ABC01; }
set { _ABC01= value; }
}
public string ABC02
{
get { return _ABC02; }
set { _ABC02= value; }
}
public string ABC03
{
get { return _ABC03; }
set { _ABC03= value; }
}
public string ABC04
{
get { return _ABC04; }
set { _ABC04= value; }
}
#endregion
}
然後在數值的代碼加載看起來像:
foreach (DataRow dr in dataTable.Rows)
{
ED = dr["FieldDesc"].ToString();
switch (ED)
{
case "ABC01":
ratesVO.ABC01 = dr["DefaultValue"].ToString();
break;
case "ABC02":
ratesVO.ABC02 = dr["DefaultValue"].ToString();
break;
case "ABC03":
ratesVO.ABC03 = dr["DefaultValue"].ToString();
break;
case "ABC04":
ratesVO.ABC04 = dr["DefaultValue"].ToString();
break;
}
}
我想實現的是一樣的東西:
foreach (DataRow dr in dataTable.Rows)
{
ED = dr["FieldDesc"].ToString();
MyCustomProperty.ED = dr["DefaultValue"].ToString();
}
這可能嗎?如果是這樣,請提供一個例子或參考。
heh;我正要說「PropertyInfo.SetValue需要第三個參數」,但看起來他們最終添加了一個「SetValue(obj,value)」重載(在.NET 4.5中)! –
@MarcGravell:是的,正確 –
也許我沒有正確地宣佈ratesVO。因爲當我輸入ratesVO。我看到的只是屬性。我沒有看到GetType方法或任何其他方法。 – Darkman