Bike.Interpreter.Interpreter.PerformInvocation C# (CSharp) Метод

PerformInvocation() приватный Метод

private PerformInvocation ( object target, string funcName, object args ) : object
target object
funcName string
args object
Результат object
        private object PerformInvocation(object target, string funcName, object[] args, 
            params Func<object[], object>[] invokers)
        {
            foreach (var interceptor in Intercepters)
            {
                object result;
                if (interceptor(target, funcName, args, out result))
                {
                    return MarshallToBike(result);
                }
            }

            args = MarshallArgumentsToClr(args);
            for (int i = 0; i < invokers.Length - 1; i++)
            {
                // First call must be Fasterflect call
                if (i == 0 && args.Any(arg => arg == null))
                    continue;
                try
                {
                    return MarshallToBike(invokers[i](args));
                }
                catch
                {
                    continue;
                }
            }
            return MarshallToBike(invokers[invokers.Length - 1](args));
        }