它是一个静态扩展方法,因此您可以将其称为静态方法:
LINQPad.Extensions.Dump(jObject);
当(我认为)编译器由于某种原因无法绑定到扩展时,我看到某些类型会发生这种情况。
在 LinqPad 的网站上有一篇文章和一篇关于使用对象Dump()
的dynamic
博客文章。
您可以尝试创建另一个 Dump() 扩展来检查属性JObject
并创建一个可以Dump
漂亮地编辑的 Dictionary。
像这样的东西:(完整的 WAG 基于 JObject 的定义):
var values = jObject.Properties.ToDictionary(p=>p.Name, p=>p.Value);
values.Dump();
当然,您可以为嵌套对象添加递归等:
//Usage: GetProperties(jObject).Dump();
public static object GetProperties(object o)
{
JObject j = o as JObject;
if(j == null)
{
return o.ToString();
}
return j.Properties().ToDictionary(p=>p.Name,p=>GetProperties(p.Value));
}