/// <summary>
        /// Evaluates the specified expression.
        /// </summary>
        /// <param name="expression">The expression to evaluate.</param>
        /// <returns>Value of the expression.</returns>
        public string Convert(QueryExpression expression)
        {
            ExceptionUtilities.CheckArgumentNotNull(expression, "expression");
            ExceptionUtilities.CheckAllRequiredDependencies(this);

            var visitor = new UriExpressionVisitor(this.LiteralConverter)
            {
                PrimitiveDataTypeConverter = this.PrimitiveDataTypeConverter,
            };

            return visitor.Convert(expression);
        }
        /// <summary>
        /// Evaluates the specified expression.
        /// </summary>
        /// <param name="expression">The expression to evaluate.</param>
        /// <returns>Value of the expression.</returns>
        public string Convert(QueryExpression expression)
        {
            ExceptionUtilities.CheckArgumentNotNull(expression, "expression");
            ExceptionUtilities.CheckAllRequiredDependencies(this);

            var visitor = new UriExpressionVisitor(this.LiteralConverter)
            {
                PrimitiveDataTypeConverter = this.PrimitiveDataTypeConverter,
            };

            return(visitor.Convert(expression));
        }