Ejemplo n.º 1
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        private static ExpressionSyntax EmitMethodCallSyntax(MethodCallExpression call)
        {
            InvocationExpressionSyntax syntax;
            var methodIdentifier = IdentifierName(call.MethodName ?? call.Method.Name);

            if (call.Target != null)
            {
                syntax = InvocationExpression(
                    MemberAccessExpression(
                        SyntaxKind.SimpleMemberAccessExpression,
                        EmitSyntax(call.Target),
                        methodIdentifier));
            }
            else
            {
                syntax = InvocationExpression(methodIdentifier);
            }

            if (call.Arguments.Count > 0)
            {
                syntax = syntax.WithArgumentList(call.GetArgumentListSyntax());
            }

            return(syntax);
        }