protected override Expression VisitMember(MemberExpression node)
        {
            // Only process nodes that haven't been processed before, this could happen because our traversal
            // is depth-first and will "visit" the nodes in the subtree before this method (VisitMember) does
            if (!Visited.ContainsKey(node.GetHashCode()))
            {
                object value = GetMemberValue(node, Visited);
                if (value != null)
                {
                    QueryParamBuilder.Append("\n\r");
                    QueryParamBuilder.Append(value.ToString());
                }
            }

            return(base.VisitMember(node));
        }