2017-07-27 65 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

謝謝,我試過前面,但.. 。「附加信息:無法將[]的索引應用於'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,任何反饋將是一個讚賞。當然,應該仔細考慮使用動態/擴展對象,但我相信這正在回答這個問題。 –