2012-01-25 12 views
2
d.GetType().GetProperty("value2").GetValue(d, null); 

これはD内のValue2プロパティの値を返すの値を取得します。動的プロパティ

は私がVALUE2すなわちd.value2.value3内部プロパティの値を求めています。

どのように私はこれを達成する必要がありますか?

答えて

6
C#4で
object e = d.GetType().GetProperty("value2").GetValue(d, null); 
object f = e.GetType().GetProperty("value3").GetValue(e, null); 
3

、単にあなたのプロパティの実行時の評価を可能にしdynamicキーワードを使用します。

((dynamic) d).value2.value3; 
+0

あなたは 'value2'を知っていればd.value2.value3''との違いは何ですコンパイル時に 'value3'(コードを書いている間)ですか? –

+0

'd'がコンパイラによって知られている型である場合、' dynamic'を使用すると便利ではありません。実行時に過負荷解決を延期するだけです。 –

+0

'value2'文字列は、実行時にのみ利用可能であると仮定します(exはxmlファイルから読み込みます)。 –

関連する問題