コード例 #1
0
        public object[] Serialize(JArray args)
        {
            object[] result = new object[args.Count];
            for (int x = 0; x < args.Count; x++)
            {
                switch (args[x].Type)
                {
                case JTokenType.Object:
                    result[x] = memory.GetRef((int)((JObject)args[x])["id"]);
                    break;

                case JTokenType.String:
                    result[x] = (string)args[x];
                    break;

                case JTokenType.Boolean:
                    result[x] = (bool)args[x];
                    break;

                case JTokenType.Integer:
                    result[x] = (int)args[x];
                    break;

                case JTokenType.Float:
                    result[x] = (float)args[x];
                    break;

                default:
                    throw new Exception("Revise type: " + args[x].Type.ToString());
                }
            }
            return(result);
        }
コード例 #2
0
        private JObject Call(string name, JArray arr, int owner)
        {
            object     ins    = memory.GetRef(owner);
            MethodInfo method = memory.GetMethodByName(name, owner);

            object[] args = serializer.Serialize(arr);
            return(serializer.MethodReturn(method.ReturnType, method.Invoke(ins, args)));
        }