【发布时间】:2012-11-19 03:10:21
【问题描述】:
我在 MVC4/.NET4 WebApi 控制器操作中收到一个 JSON 字符串。该操作的参数是dynamic,因为我不知道接收端关于我正在接收的 JSON 对象的任何信息。
public dynamic Post(dynamic myobject)
自动解析 JSON,生成的 dynamic 对象是 Newtonsoft.Json.Linq.JContainer。正如预期的那样,我可以在运行时评估属性,因此如果 JSON 包含类似 myobject.myproperty 的内容,那么我现在可以获取接收到的动态对象并在 C# 代码中调用 myobject.myproperty。到目前为止一切顺利。
现在我想遍历作为 JSON 的一部分提供的所有属性,包括嵌套属性。但是,如果我执行 myobject.GetType().GetProperties(),它只会返回 Newtonsoft.Json.Linq.JContainer 的属性,而不是我正在寻找的属性(它们是 JSON 的一部分)。
知道怎么做吗?
【问题讨论】:
-
this 文章可能对你有所帮助,看看他在
DeserializeRequest方法中做了什么。
标签: c# dynamic reflection json.net