2017-07-27 4 views
1

プロパティ名を変数の値に設定した動的オブジェクトを構築することは可能ですか?動的変数cの変数#

これは標準思わ例えば

...

dynamic elem = new Object(); 
elem.Name = "myName"; 

が、これはどのように実装されるのでしょうか?...私のようなプロパティを呼び出すことができるだろうと

string fn = "FirstName"; 
string ln = "LastName"; 
dynamic elem = new Object(); 
elem.fn = "John"; 
elem.ln = "Doe"; 

を...

string fn = elem.FirstName; 
+0

https://msdn.microsoft.com/en-us/library/xfhwa508%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 –

+0

おかげで、私は、以前のことを試してみましたが... msgstr "追加情報:[]付きのインデックス付けをタイプ 'object'の式に適用できません。ここでは辞書を扱っていません。動的オブジェクトは、キーと値だけでなく、多くのプロパティを持つことができます。 –

+0

'これは標準的だと思われます... 'いいえ動作できません、オブジェクトにはプロパティがありません*名前* .....編集可能/正しいコード –

答えて

2

ExpandoObjectはまた、あなたが使用してプロパティを追加することができることを意味し、IDictionary<string, object>実装します文字列キー。

dynamic person = new ExpandoObject(); 

person.FirstName = "Alex"; 
var ln = "lastname"; 

(person as IDictionary<string, Object>)[ln] = "KeySmith"; 
+0

私は-1に気付きました。フィードバックは高く評価されます。もちろん動的/拡張オブジェクトを使用することは慎重に検討する必要がありますが、これは手元にある質問に答えていると思います。 –