コード例 #1
0
        /// <summary>
        /// call Method with no params and no return value;
        /// </summary>
        /// <param name="Instance">Instacne, if it is null means static method,else means instance method</param>
        /// <param name="type">TypeName ,eg "Namespace.ClassType"</param>
        /// <param name="method">MethodName</param>
        public void Invoke(Object Instance, string type, string method)
        {
            var sw = new System.Diagnostics.Stopwatch();

            sw.Start();
            _app.Invoke(type, method, null); //InstanceTest
            sw.Stop();
            message.AppendLine("Elappsed Time:" + sw.ElapsedMilliseconds + "ms\n");
        }
コード例 #2
0
        //在适配器中重写所有需要在热更脚本重写的方法,并且将控制权转移到脚本里去
        public override void TestAbstract(int a)
        {
            if (m_TestAbstract == null)
            {
                m_TestAbstract = m_Instance.Type.GetMethod("TestAbstract", 1);
            }

            if (m_TestAbstract != null)
            {
                param1[0] = a;
                m_Appdomain.Invoke(m_TestAbstract, m_Instance, param1);
            }
        }
コード例 #3
0
        public void Awake()
        {
            if (m_Instance != null)
            {
                if (m_AwakeMethod == null)
                {
                    m_AwakeMethod = m_Instance.Type.GetMethod("Awake", 0);
                }

                if (m_AwakeMethod != null)
                {
                    m_Appdomain.Invoke(m_AwakeMethod, m_Instance, null);
                }
            }
        }
コード例 #4
0
ファイル: Adapt_MSystem.cs プロジェクト: GodTaeja/CodePackage
 public override MSystemJob GetJob(MEntity arg0)
 {
     if (!mGetJobGot)
     {
         mGetJob    = instance.Type.GetMethod("GetJob", 1);
         mGetJobGot = true;
     }
     //对于虚函数而言,必须设定一个标识位来确定是否当前已经在调用中,否则如果脚本类中调用base.TestVirtual()就会造成无限循环,最终导致爆栈
     if (mGetJob != null && !isGetJobInvoking)
     {
         isGetJobInvoking = true;
         param1[0]        = arg0;
         object ret = appdomain.Invoke(mGetJob, instance, this.param1);
         isGetJobInvoking = false;
         return((MSystemJob)ret);
     }
     else
     {
         return(base.GetJob(arg0));
     }
 }