使用 C# class 在与 Nlua 的共享项目中实现

Use C# class implemented in shared project with Nlua

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

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

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

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

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 的新手)如果我想在定义变量之前对它做一些事情,就会发生这个错误(因为 lua 文件被解析从头到尾,虽然我不确定这一点。)

我的问题是:如何使用与 Nlua 共享项目中定义的方法和 类?我很确定我的程序集有问题,但似乎没有太多关于这个主题的文档。

感谢任何帮助!

共享项目不会创建程序集 (.dll),您需要使用最终程序集。

或者您也可以使用 PCL。否则来自 NLua 的 LoadAssembly 将失败

谢谢。