Chinaunix首页 | 论坛 | 博客
  • 博客访问: 165905
  • 博文数量: 36
  • 博客积分: 2160
  • 博客等级: 大尉
  • 技术积分: 382
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 01:48
个人简介

喝喝咖啡,做做开发

文章分类
文章存档

2014年(4)

2013年(1)

2012年(4)

2011年(2)

2010年(3)

2009年(9)

2008年(3)

2007年(10)

我的朋友

分类:

2010-04-14 15:01:30

lua与.net初探
作者:李艳庆

lua是一门嵌入式脚本语言,可以很轻松地嵌入到.net framework中。既可以在.net中调用lua的函数,也可以在lua中调用.net中对象的方法。
下面是一个示例:
首先下载luainterface,可以从下载。下载解压后,有两个DLL文件,lua51.dll和LuaInterface.dll,将这两个文件在.net项目中加以引用。这里使用C#语言。
引用后以上两个文件后,声明LuaInterface.dll中的命名空间:LuaInterface
建立一个CS文件,调用lua的方法如下:
public void Test()
{
    Lua netlua = new Lua();
    netlua.RegisterFunction("SecondTest", this,this.GetType().GetMethod("SecondTest"));
    netlua.DoFile(@"E:\dvtest\wintest\LuaTest\LuaTest\bin\Debug\test.lua");
    netlua.GetFunction("FirstTest").Call();
}

建立一个方法SecondTest,在lua脚本中调用:
public void SecondTest(string str)
{
    MessageBox.Show(str);
}


建立lua脚本文件,test.lua
function FirstTest()
    SecondTest("hello")
end

在C#中执行方法Test,会弹出提示框,显示hello。
也可以在lua脚本中加入一条语句:FirstTest(),让它自己调用定义的函数,这样就不需要执行lua的GetFunction().Call()方法了。在执行它的DoFile方法时会自动执行FirstTest()方法。

这种嵌入式的脚本方式,很是适合在开发通用性ETL工具时,作为中间数据处理时的脚本。
阅读(3655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~