2012-05-31 79 views
4

給定一個動態對象和一個字符串成員的名字:當我知道成員名稱時訪問動態對象成員的最佳方法是什麼?

string AMemberNameIKnowExists = "SomeMember"; //determined at runtime 
dynamic myDynamicObject = //... 

我想訪問「SomeMember」成員我的動態對象。我是否必須使用標準的反射工具,或者我有一個動態對象的事實爲我提供了一種更好的方法來按名稱解析成員?

+1

[動態獲取動態對象的值]的可能重複(http://stackoverflow.com/questions/1926776/getting-a-value-from-a-dynamic-object-dynamically) – jbtule

+0

約定jbtule(和以及發現的)。 –

回答

0

試試這個方式來獲得屬性值形成

myDynamicObject.GetType() 
       .GetProperty("SomeMember") 
       .GetValue(myDynamicObject, null); 
2

我沒有測試此對象,但你應該能夠使用DynamicObjectTryGetMember方法:

myDynamicObject.TryGetMember(new GetMemberBinder("SomeMember", false), out result) 

據正如我所瞭解的dynamic,這就是像myDynamicObject.SomeMember這樣的動態調用被翻譯成的。

相關問題