System.ComponentModel.ScriptExpression.ParseMethodCall C# (CSharp) Method

ParseMethodCall() private static method

private static ParseMethodCall ( string expression ) : IValueExpression
expression string
return IValueExpression
        private static IValueExpression ParseMethodCall(string expression)
        {
            MethodCallExpression methodCall = null;

            int openParenIndex = expression.IndexOf("(", StringComparison.Ordinal);
            string memberExpression = expression.Substring(0, openParenIndex);

            string[] pathParts = ParseParts(memberExpression);
            if ((pathParts != null) && (pathParts.Length >= 2)) {
                methodCall = new MethodCallExpression(pathParts);
            }
            else {
                return null;
            }

            int paramsLength = expression.Length - openParenIndex - 2;
            if (paramsLength != 0) {
                string paramExpression = expression.Substring(openParenIndex + 1, paramsLength);
                string[] paramExprList = paramExpression.Split(',');

                for (int i = 0; i < paramExprList.Length; i++) {
                    IValueExpression expr = ParseExpression(paramExprList[i].Trim(), /* allowMethod */ false);
                    if (expr != null) {
                        methodCall.AddParameter(expr);
                    }
                    else {
                        return null;
                    }
                }
            }

            return methodCall;
        }