public override void VisitInvocationExpression(IInvocationExpression operation)
        {
            var targetMethod = operation.TargetMethod;
            var isVirtual    = operation.IsVirtual;

            // base.VisitInvocationExpression only visit operations in ArgumentsInSourceOrder
            foreach (var argument in operation.ArgumentsInParameterOrder)
            {
                Visit(argument);
            }
            if (targetMethod != null)
            {
                foreach (var parameter in targetMethod.Parameters)
                {
                    var matchingArgument = operation.GetArgumentMatchingParameter(parameter);
                    Visit(matchingArgument);
                }
            }

            base.VisitInvocationExpression(operation);
        }
Example #2
0
        public override void VisitInvocationExpression(IInvocationExpression operation)
        {
            var targetMethod = operation.TargetMethod;
            var isVirtual = operation.IsVirtual;
            // base.VisitInvocationExpression only visit operations in ArgumentsInSourceOrder
            foreach (var argument in operation.ArgumentsInParameterOrder)
            {
                Visit(argument);
            }
            if (targetMethod != null)
            {
                foreach (var parameter in targetMethod.Parameters)
                {
                    var matchingArgument = operation.GetArgumentMatchingParameter(parameter);
                    Visit(matchingArgument);
                }
            }

            base.VisitInvocationExpression(operation);
        }