K1601906881
K1601906881
采纳率0%
2021-03-05 22:02

lua可以加载c#系统程序集,但是无法加载自定义程序集

--lua访问c#程序
require("luanet")    --引入luanet.dll,该dll文件需与该lua文件在同一路径下

luanet.load_assembly("LuaAndCSharp")   --加载程序集(自己写的项目程序集)
luanet.load_assembly("System")        --加载程序集(C#内置的程序集)

Console = luanet.import_type("System.Console")    --获取System程序集下的Console类
print(Console)

Console.WriteLine("商品名:{0},价格:{1}","大刀",50)    --现在可以调用C#中的方法

MyTest = luanet.import_type("LuaAndCSharp.MyTest")
print(MyTest)

 

输出:

>lua -e "io.stdout:setvbuf 'no'" "test1.lua" 
ProxyType(System.Console): 54267293
商品名:大刀,价格:50
nil
>Exit code: 0

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • huanhuilong 幻灰龙 1月前

    自定义程序集没有放到 luanet 可以加载到的地方?如果是在 C# 里用 LuaInterface 调用 DoString 执行 lua 代码,进而在 lua 代码里用 luanet load_assembly ,那么实际上是你的宿主程序加载自定义程序集,所以要保证你的宿主程序本身加载了你所要加载的自定义程序集,这样 luanet 才能找得到它。

    点赞 评论 复制链接分享