示例#1
0
        public object Call(ArgPuller argf, int nargs)
        {
            var args = new List <object>();

            if (nargs < 0)
            {
                nargs = parameterTypes.Count;
            }
            args.Clear();
            if (needsContext)
            {
                args.Add(context);
                nargs--;
            }
            for (int i = 0; i < nargs; i++)
            {
                var arg = argf();
                args.Add(arg is int && parameterTypes[i] == typeof(bool) ?
                         Convert.ToBoolean(arg) : arg);
            }
            return(method.Invoke(argf(), args.ToArray()));
        }
示例#2
0
 object CallImportN(int n, ArgPuller arg, int nargs)
 {
     return(imports[n].Call(arg, nargs));
 }