有人可以帮助了解这里发生的事情吗?
如果我在C#程序中这样做:
dynamic data = Json.Decode("{\"myObjects\": [ { \"id\": 1 }, { \"id\": 2 } ] }");
int id = data.myObjects[0].id;
我能够访问id并将其设置为1 ......到目前为止,一切都很好。
我不明白为什么,当我调试程序时,我无法在Locals检查器中查看data
的内容。相反,它告诉我这一点,好像它不知道如何处理数组。
错误无法发现有关此对象的更多信息
答案 0 :(得分:2)
似乎存在Visual Studio的错误/限制(至少我使用的是2013版本)。如果您将手表放在data
上,则可以点击Dynamic View
并查看其有stuff
,但如果您点击myObject
(即DynamicJsonArray
})你只获得它的“动态”部分,而不是它的“固定”属性(如Length
),如果你试图点击它的Dynamic View
你会收到没有关于此的更多信息可以发现对象 ... 但如果您为data.myObject
创建了一个手表,那么您仍然会使用不可用的Dynamic View
,但是您可以查看DynamicJsonArray
的“固定”属性(如Length
),如果单击Result View
,则可以看到数组的项目。见图:
答案 1 :(得分:1)
'data'被声明为动态类型,这就是为什么你不能鼠标悬停并看到值。如果您向Watch添加“数据”,您仍然可以看到该值。
答案 2 :(得分:1)