在共享项目中使用用C#类实现Nlua

我想在我的项目中使用Nlua。我的项目设置是: 我有一个共享项目,其中我实现了我的逻辑,以及使用此共享项目的几个特定于平台的项目。

现在我想在使用Nlua执行的lua函数中使用在此共享项目中定义的类。问题是这不起作用。

lua.DoString(@"import('Platformspecific_Project_AssemblyName', 'Platformspecific_Project_Namespace') SomceClass.StaticMethod()");

这个很好用。但是如果我现在想使用在共享项目中定义的类,则不起作用:

lua.DoString(@"import('Platformspecific_Project_Assembly','Shared_Project_Namespace') SomeSharedClass.StaticMethod()");

我得到的错误是:

 Additional information: [string "chunk"]:1: attempt to index global 'SomeSharedClass' (a nil value)

从我所读的(顺便说一下,我是新手)如果我想在定义变量之前对变量做些事情,则会出现此错误(因为lua文件是从开始到结束解析的,尽管我不确定这一点。)

我的问题是:如何使用Nlua中定义的共享项目中的方法和类?我相当确定我在组件方面犯了一些错误,但似乎对此主题没有太多文档。

任何帮助都将不胜感激!

点赞
用户198353
用户198353

Share project不会创建一个程序集(.dll),你需要使用最终的程序集。或者你也可以使用PCL(可移植类库)。否则NLua的LoadAssembly操作会失败。

谢谢。

2016-06-07 03:56:59