我想要獲取動態對象的屬性值。 json字符串被解析/反序列化爲一個動態對象,然後我想通過名稱和get值來訪問屬性。如何獲取動態類型的屬性值,其中屬性名稱在C中的變量中#
string json = "{\"key1\":\"value1\", \"key2\": \"value2\"}";
dynamic d = JObject.Parse(json);
Console.WriteLine("Key1 : " + d.key1); //value1
上面的代碼按預期方式工作,但如何使用get屬性按名稱存儲在變量中的值?
string jsonKey = "key2";
string json = "{\"key1\":\"value1\", \"key2\": \"value2\"}";
dynamic d = JObject.Parse(json);
var jsonValue = d.GetType().GetProperty(jsonKey).GetValue(d, null); //throws exception - Cannot perform runtime binding on a null reference
Console.WriteLine("jsonValue : " + jsonValue);
GetProperty(jsonKey)
拋出一個異常Cannot perform runtime binding on a null reference
或者,如果有一個替代的解決這個問題。
這種方法的另一種可能是使用F#類型的供應商(可能打包成一個單獨的組件,在它上面的API)。 – BitTickler