Lua和C#交互

Lua 和 C#是通过一个开源技术LuaInterface进行交互的。

LuaInterface包含两个核心类库:LuaInterface.dll 和 Luanet.dll

C#访问Lua的代码时:---依赖LuaInterface.dll

        需要引入这两个类库(在C#项目中引用),然后创建Lua解释器:Lua lua = new Lua( );

        有两个方法可以访问->DoString( "lua语句")  和 DoFile( lua文件)

    把一个C#类方法注册进Lua的一个全局方法:

        //把一个类中普通方法注册进去

        lua.RegisterFunction("LuaFun",obj,obj.GetType( ).GetMethod("NormalFun")); //LuaFun是注册进Lua后的方法名,obj和第三个参数是把 哪个对象的哪个方法注册进去

        lua.DoString("LuaFun"); //调用

        //把一个类中静态方法注册进去

    lua.RegisterFunction("LuaStaticFun",null,typeof(classname).GetMethod("StaticFun"));//null:因为静态不属于特定对象

Lua访问C#(Lua中使用C#中的类):---依赖Luanet.dll

        主要有3大步骤:

        ①require "luanet" --先引入luanet.dll

        ②luanet.load_assembly( "System" ) --再加载C#中的动态链接库dll(先引入dll) 或 自己的namespace,即程序集

        ③luanet.import_type( "System.Int32" ) --最后引入链接库中某个类(再引入类型)

在Lua中使用C#中的类型创建对象时,会自动匹配最合适的构造方法。

        

猜你喜欢

转载自blog.csdn.net/ai_little_ai/article/details/80488111
今日推荐