KBEngine.Entity.baseCall C# (CSharp) Метод

baseCall() публичный Метод

public baseCall ( string methodname ) : void
methodname string
Результат void
        public void baseCall(string methodname, params object[] arguments)
        {
            if(KBEngineApp.app.currserver == "loginapp")
            {
                Dbg.ERROR_MSG(className + "::baseCall(" + methodname + "), currserver=!" + KBEngineApp.app.currserver);
                return;
            }

            Method method = null;
            if(!EntityDef.moduledefs[className].base_methods.TryGetValue(methodname, out method))
            {
                Dbg.ERROR_MSG(className + "::baseCall(" + methodname + "), not found method!");
                return;
            }

            UInt16 methodID = method.methodUtype;

            if(arguments.Length != method.args.Count)
            {
                Dbg.ERROR_MSG(className + "::baseCall(" + methodname + "): args(" + (arguments.Length) + "!= " + method.args.Count + ") size is error!");
                return;
            }

            baseMailbox.newMail();
            baseMailbox.bundle.writeUint16(methodID);

            try
            {
                for(var i=0; i<method.args.Count; i++)
                {
                    if(method.args[i].isSameType(arguments[i]))
                    {
                        method.args[i].addToStream(baseMailbox.bundle, arguments[i]);
                    }
                    else
                    {
                        throw new Exception("arg" + i + ": " + method.args[i].ToString());
                    }
                }
            }
            catch(Exception e)
            {
                Dbg.ERROR_MSG(className + "::baseCall(method=" + methodname + "): args is error(" + e.Message + ")!");
                baseMailbox.bundle = null;
                return;
            }

            baseMailbox.postMail(null);
        }