2

(この質問に似ています)

「Questions」と「FinalFigures」というテーブルがあります。

質問 (QuestionID、Text、FinalFiguresColumnName)
FinalFigures (FinalFigureID、TotalDays、TotalCost など)

「FinalFiguresColumnName」には、「TotalDays」、「TotalCost」などの値が含まれます。一連の質問をループして、「Text」値を「FinalFigures」テーブルの対応する列名に保存する簡単な方法はありますか?

すなわち。それ以外の:

var item = new FinalFigure();
item.TotalDays = "x";

私は欲しい:

var item = new FinalFigure();
// access the column 'TotalDays' with its name as a string, not a property
4

1 に答える 1

6

直接アクセスする代わりに、少しのリフレクションを使用して、プロパティの文字列名でプロパティ値を取得できます。

var value = (int)item.GetType().GetProperty("TotalDays").GetValue(item);

値を設定するには、SetValue() を呼び出すだけです。

item.GetType().GetProperty("TotalDays").SetValue(item, value);
于 2013-10-30T14:53:09.967 に答える