dynamiclua icon indicating copy to clipboard operation
dynamiclua copied to clipboard

LuaTable instance is passed to Methods

Open nrother opened this issue 11 years ago • 1 comments

When a C#-Method is called with a table as a parameter, a instance of LuaTable is passed not a instance of DynamicLuaTable. Currently there is no idea how to change this, the only solution would be a wrapper Method, wrapping the in the correct classes.

This would be a workarround, but it requires a reference to the orignal LuaInterface Assembly:

lua.func3 = new Action<dynamic>((table) =>
{
       table = new DynamicLuaTable(table, lua.LuaInterpreter);
       Console.WriteLine(table.num);
});
lua("func3({num = 42})");

nrother avatar Mar 03 '14 11:03 nrother

Just to makes this more clear: In the code given above the table in func3 is of the type dynamic with the underlying type LuaTable (instead of DynamicLuaTable). This means, you can't use table.num (but table["num"] works.)

Rewrapping the table as shown above is a workaround. Or just use the array syntax...

nrother avatar Mar 03 '14 13:03 nrother