protected Expression ResolveReference(Expression Root, string reference)
 {
     ReferenceVisitor visitor = new ReferenceVisitor(new JsonPath(reference));
     Root.Accept(visitor);
     return visitor.ReferencedExpression;
 }
 public Expression Execute(Expression root)
 {
     CustomTypeResolverVisitor visitor = new CustomTypeResolverVisitor();
     root.Accept(visitor);
     return root;
 }
 private static List<ReferenceExpression> CollectReferences(Expression root)
 {
     CollectReferencesVisitor visitor = new CollectReferencesVisitor();
     root.Accept(visitor);
     return visitor.References;
 }