Ejemplo n.º 1
0
        public static object ExecuteTaskVoid(string PayloadID, string Identifier)
        {
            if (!Payloads.TryGetValue(PayloadID, out var TargetPayload))
            {
                throw new Exception($"Payload {PayloadID} does not exist");
            }

            if (!TargetPayload.Methods.TryGetValue(Identifier, out var TargetMethod))
            {
                throw new Exception($"Payload does not container method {Identifier}");
            }

            return(TargetMethod.Invoke(TargetPayload.Instance, null));
        }
        public override CExecutionPin Execute(CNodeExecutionContext context, List <object> inParameters, List <object> outReturn)
        {
            for (int i = 0; i < inParameters.Count; i++)
            {
                if (InputPins[i].SourceNode == null)
                {
                    inParameters[i] = InputPins[i].Literal;
                }
            }

            if (m_functionProxy.bIsCompiled)
            {
                m_functionProxy.compiledMethod(inParameters, outReturn);
            }
            else
            {
                object   targetObject;
                object[] parameterArray;
                int      parameterStartIndex;
                if (TargetMethod.IsStatic)
                {
                    targetObject        = null;
                    parameterArray      = new object[InputPins.Count];
                    parameterStartIndex = 0;
                }
                else
                {
                    targetObject        = inParameters[0];
                    parameterArray      = new object[InputPins.Count - 1];
                    parameterStartIndex = 1;
                }

                for (int i = parameterStartIndex; i < InputPins.Count; i++)
                {
                    parameterArray[i - parameterStartIndex] = inParameters[i];
                }

                object returnValue = TargetMethod.Invoke(targetObject, parameterArray);
                outReturn.Add(returnValue);
                foreach (int returnIndex in m_additionalReturns)
                {
                    outReturn.Add(parameterArray[returnIndex]);
                }
            }

            return(IsImplicit ? null : OutExecutionPins[0]);
        }
Ejemplo n.º 3
0
 public void Proceed()
 {
     ReturnValue = TargetMethod.Invoke(Target, Arguments);
 }
Ejemplo n.º 4
0
 protected void OnButtonClicked()
 {
     TargetMethod.Invoke(null, null);   // all console methods are static
 }