System.Management.Pash.Implementation.ExecutionVisitor.VisitInvokeMemberExpression C# (CSharp) Method

VisitInvokeMemberExpression() public method

public VisitInvokeMemberExpression ( System.Management.Automation.Language.InvokeMemberExpressionAst methodCallAst ) : AstVisitAction
methodCallAst System.Management.Automation.Language.InvokeMemberExpressionAst
return AstVisitAction
        public override AstVisitAction VisitInvokeMemberExpression(InvokeMemberExpressionAst methodCallAst)
        {
            var psobj = PSObject.WrapOrNull(EvaluateAst(methodCallAst.Expression, false));
            if (psobj == null)
            {
                throw new PSInvalidOperationException("Cannot invoke a method of a NULL expression");
            }
            var memberNameObj = EvaluateAst(methodCallAst.Member, false);
            var method = PSObject.GetMemberInfoSafe(psobj, memberNameObj, methodCallAst.Static) as PSMethodInfo;
            if (method == null)
            {
                var msg = String.Format("The object has no method called '{0}'", memberNameObj.ToString());
                throw new PSArgumentException(msg);
            }
            var arguments = methodCallAst.Arguments.Select(EvaluateAst).Select(o => o is PSObject ? ((PSObject)o).BaseObject : o);
            var result = method.Invoke(arguments.ToArray());
            if (result != null)
            {
                _pipelineCommandRuntime.WriteObject(PSObject.AsPSObject(result));
            }
            return AstVisitAction.SkipChildren;
        }
ExecutionVisitor