public void ExecuteMethod(ILClassInstance classInstance, string methodName, int paramCount,
                                  params object[] paras)
        {
            if (classInstance.classInstance == null || classInstance.type == null)
            {
                return;
            }

            IMethod method = classInstance.type.GetMethod(methodName, paramCount);

            appdomain.Invoke(method, classInstance.classInstance, paras);
        }
        public ILClassInstance CreateInstance(string typeFullName, params object[] args)
        {
            ILClassInstance ilInstance = null;
            object          instance   = appdomain.Instantiate(typeFullName, args);

            if (instance != null)
            {
                ilInstance = ReferencePool.Acquire <ILClassInstance>();

                ilInstance.classInstance = instance;
                ilInstance.type          = appdomain.LoadedTypes[typeFullName];
            }

            return(ilInstance);
        }