使用 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
将失败
谢谢。
我想在我的项目中使用 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
将失败
谢谢。