C#调用脚本语言(一)-- IronLua基本语法
2013-01-22 18:02
1801 查看
IronLua源代码下载(SVN):http://luainterface.googlecode.com/svn/trunk/
编译:在编译时,可能会报错,因为缺少APP.Config文件,将项目中所有APP.Config删除再次编译就可以。
引用:在自己项目中引用:lua51.dll,LuaInterface.dll后可以进行后续开发。
命名空间:LuaInterface
常用方法:
C#:
注册Lua中可调用方法:
luaVM.RegisterFunction(Lua调用方法名, 类, 类.GetMethod(C#方法名)); 注:C#不要使用方法级泛型,即 void Fun<T>(string str);,如果使用,系统自动判定T为第一个参数的类型。
加载Lua代码
luaVM.DoString(Lua代码);
luaVM.DoFile(Lua文件绝对路径);
调用Lua方法
luaVM.GetFunction(Lua方法).Call(参数); 注:此处参数不要传递dynamic类型的类,否则Lua中无法获取属性值
Lua:
调用C#方法:
Say(“Ping”)
编译:在编译时,可能会报错,因为缺少APP.Config文件,将项目中所有APP.Config删除再次编译就可以。
引用:在自己项目中引用:lua51.dll,LuaInterface.dll后可以进行后续开发。
命名空间:LuaInterface
常用方法:
C#:
注册Lua中可调用方法:
luaVM.RegisterFunction(Lua调用方法名, 类, 类.GetMethod(C#方法名)); 注:C#不要使用方法级泛型,即 void Fun<T>(string str);,如果使用,系统自动判定T为第一个参数的类型。
加载Lua代码
luaVM.DoString(Lua代码);
luaVM.DoFile(Lua文件绝对路径);
调用Lua方法
luaVM.GetFunction(Lua方法).Call(参数); 注:此处参数不要传递dynamic类型的类,否则Lua中无法获取属性值
Lua:
调用C#方法:
Say(“Ping”)
class ClassTestLua { public void Start() { Lua luaVM = new Lua(); luaVM.RegisterFunction("Sleep", this, this.GetType().GetMethod("LuaSleep")); luaVM.RegisterFunction("Sleep2", this, this.GetType().GetMethod("LuaSleep2")); //载入AI文件 //luaVM.DoFile(System.AppDomain.CurrentDomain.BaseDirectory + _petPath + "//ai.lua"); luaVM.DoString("function GetFunction(c) Sleep(c.a) end"); luaVM.DoString("function GetFunction2(c) Sleep2(c.a) end"); A<int> C = new A<int>(); C.a = 10; luaVM.GetFunction("GetFunction").Call(C);//调用lua中的GetFunction方法 try { luaVM.GetFunction("NoGetFunction").Call(C); } catch (Exception) { Console.WriteLine("No function"); } luaVM.GetFunction("GetFunction2").Call(C);//调用lua中的GetFunction方法 } public void LuaSleep(int str) { Console.WriteLine(str); } public void LuaSleep2<T>(int str) { Console.WriteLine(str); } } public class A<T> { public T a; }
相关文章推荐
- C#调用脚本语言(二)-- IronJS基本语法
- C#调用脚本语言(三)-- IronJS 与 IronLua 简单方法性能比较
- C#调用脚本语言(三)-- IronJS 与 IronLua 简单方法性能比较
- C#调用脚本语言(三)-- IronJS 与 IronLua 简单方法性能比较
- c#调用脚本语言Lua
- c#调用脚本语言Lua——简单Demo
- Cocos2d-x 脚本语言Lua基本语法
- Lua脚本语言基本语法快速入门教程
- Lua脚本语言——基本语法(一)
- c#调用脚本语言Lua——简单Demo
- Cocos2d-x 脚本语言Lua基本语法
- Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本
- xlua入门(3)c#调用Lua脚本
- Shell脚本的基本语法(二) 预定义特殊字符、case语句和函数调用
- 第1篇 C#语言基本语句和语法
- C#调用Python 脚本语言
- lua脚本的基本语法(二)
- IronPython脚本调用C#实现的dll库
- Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本