public static void Register() { // //0、得到Lua环境句柄 // var pNull = new IntPtr(0); var hEnviroment = XLLuaRuntime.XLLRT_GetEnv(pNull); //1、注册类型 XLLuaRuntime.RegisterClass(hEnviroment, new XLRTClassInfo { ClassName = _typeFullName, FatherClassName = null, DeleteFunction = _lua_DeleteInstance, Methods = _lua_functions }); }
public static void Register() { // //0、得到Lua环境句柄 // var pNull = new IntPtr(0); var hEnviroment = XLLuaRuntime.XLLRT_GetEnv(pNull); switch (_createPolicy) { case CreatePolicy.Factory: //1、注册类型工厂 XLLuaRuntime.RegisterGlobalObject(hEnviroment, new XLRTObjectInfo { ClassName = _typeFactoryClassName, ObjectName = _typeFactoryObjectName, UserData = pNull, GetFunction = _lua_GetClassFactoryInstance, Methods = new SortedList <string, LuaCFunction> { { "CreateInstance", _lua_CreateInstance } } }); //2、注册类型 XLLuaRuntime.RegisterClass(hEnviroment, new XLRTClassInfo { ClassName = _typeFullName, FatherClassName = null, DeleteFunction = _lua_DeleteInstance, Methods = _lua_functions }); return; case CreatePolicy.Singleton: //1、注册单例对象 XLLuaRuntime.RegisterGlobalObject(hEnviroment, new XLRTObjectInfo { ClassName = _typeFullName, ObjectName = _typeFullName, UserData = pNull, GetFunction = _lua_GetClassFactoryInstance, Methods = _lua_functions }); return; default: throw new Exception("UnSupport CreatePolicy!"); } }